这个话题有点滑稽了。of course!
我要说的是个很便宜的汽水,一元一瓶,而且两个空瓶子就可以兑换一瓶汽水,先实现一个小目标,喝个20块钱的。
让我们来讨论这个复杂而有趣的喝汽水问题……
首先,20块钱,先保底喝上20瓶。
然后,我们有了20个空瓶子,再来10瓶喝掉。
这就又有了10个空瓶子,再兑换,再喝……
(有人说,不撑吗?……拜托,一块钱的汽水你以为有多少,不然给你20块钱让你挥霍?)
然后……我们一直兑换,一直喝……
突然发现,手里就一个空瓶子了。
不好意思,game over!
接下来,让我们用代码实现这个complicated and interesting(复杂而有趣)的course。
在VS下输入如下C语言代码:
#include <stdio.h>
#include <windows.h>
int drink_water(int money)
{
int total = money;
int empty = money;
while (empty > 1){
total += empty / 2;
empty = empty / 2 + empty % 2;
}
return total;
}
int main()
{
int money = 20;
int total=drink_water(money);
printf("%d\n", total);
system("pause");
return 0;
}
输完了,那就F5运行“喝”下试试;
结果颠覆了我的三观~
20块钱能喝39瓶汽水!天底下哪里有这种好事……
不过,唯一美中不足的是手里还剩一个空瓶子,这可是赤裸裸的“半瓶汽水”啊
这时候有同志出来说话了,先去问老板借一个空瓶子,拿来兑换了,再把空瓶还给老板……不就能多喝一瓶。
当然,如果你长得帅,说不定可以……