思路 创建empty储存空瓶数 创建num储存总汽水数
num最开始用钱买 后面用空瓶换 num+=empty/2
empty在每次换汽水之后 都会减少为大约一半 empty=empty/2+empty%2
代码如下:
int main()
{
int money = 50;
int num = 0;
int empty = 0;
//买回汽水
num += money;
empty += money;
//换回汽水
while (empty>=2)
{
num += empty / 2; //总的个数里加上空瓶/2
empty = empty / 2 + empty % 2; //空瓶实际上只和空瓶自己有关 上次的空瓶/2加上%2
}
printf("50元购买的总汽水数为:%d", num);
return 0;
}
分为两次 一次买汽水 一次换汽水 不必写在一个循环里面 因为第一次买用到money 后面就只是空瓶和总数之间的关系了
其实这个循环并不复杂 总数加上空瓶换的 空瓶减少
我说这个不复杂其实是因为我最开始自己尝试着写了一次 没写出来