喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)
用empty表示空瓶子数量,用total表示喝汽水的总瓶数
每次兑换之后,喝汽水的数量增加empty/2。
兑换前空瓶子的数量如果为奇数,兑换后空瓶子数量变为empty/2+1;
兑换前空瓶子的数量如果为偶数,兑换后空瓶子数量变为empty/2;
所以,兑换后空瓶子数量可以表示为empty/2+empty%2。
循环直到空瓶子数量小于2不能兑换为止。
#include<windows.h>
#include<stdio.h>
#pragma warning(disable:4996)
int DrinkSoda(int money)
{
int total = money;
int empty = money;
while (empty >= 2)
{
total += empty / 2;
empty = empty / 2 + empty % 2;
}
return total;
}
int main()
{
int money = 0;
printf("请输入你的钱数:");
scanf("%d", &money);
int total = DrinkSoda(money);
printf("一共可以喝%d瓶汽水\n", total);
system("pause");
return 0;
}