日期:2014-05-18  浏览次数:20697 次

求最简单算法
手机今天接到了一条很有意思的短息,我想可以用程序做下,很简单的:一元一瓶饮料,两个空饮料瓶能换一瓶饮料,现在有120元,最多能喝多少瓶饮料? 我写的是:
C# code
  
//M 为钱数
private static void ShowTotal(int M)
        {
            int b = -1, c = 0;//b瓶子,c瓶数
            for (int i = M; i >= 0; i--)
            {
                b++;
                if (b % 2 == 0 && b != 0)
                {
                    c++;
                    b--;

                }
            }
            int result = c + M;
            Console.WriteLine(result);
        }



大家有什么简便的方法,希望呈上。。。

------解决方案--------------------
简单一点就是 递归迭代
想的深一点,一个数学公式就出来了吧!
只是,我有点懒。。。。
------解决方案--------------------
240瓶?或者趋近这个数字。

其实这个问题就如同,csdn回答问题结贴归还一半可用分。现在有120分,最多能问多少分的问题。
------解决方案--------------------
110101010101010101010
这样排下去,应该是239
------解决方案--------------------
接近240个

数学上的等比数列
------解决方案--------------------
int s=120;
int j=2;
int a=s/j;
int sa=s;
for(int c=a;c>1;){

sa+=c;
c=c/j;

}
System.out.println(sa);