求最简单算法
手机今天接到了一条很有意思的短息,我想可以用程序做下,很简单的:一元一瓶饮料,两个空饮料瓶能换一瓶饮料,现在有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);