喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少瓶汽水。这个问题是个经典的C语言问题,用简单的程序可以实现,如下:
#include<stdio.h>
#include<windows.h>
#define N 20
int Total(int num)
{
int x = N;
int y = N;
while (y > 1)
{
x += y / 2;
y = y / 2 + y % 2;
}
return x;
}
int main()
{
int i = N;
int total=Total(i);
printf("一共喝了 %d 瓶汽水!\n",total);
system("pause");
return 0;
}
这里定义了一个宏,是为了方便我们修改数据,如果以后需要计算其他的数据,只需要修改宏即可。main函数里用了一个简单的Total()函数,x是函数传入的值,y表示每次喝完水以后的瓶子。函数的核心是while循环,当瓶子数大于1时,对x进行加法运算,加上的数就是每次瓶子的数,由于会出现奇数的情况,为了不浪费瓶子,我们用y=y/2+y%2来进行瓶子的数的计算,直到最后瓶子数不大于1。最后返回x的值,即喝汽水的总数。
这个问题就简单的说到这儿吧,不要忘记继续努力哦!