喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水
20元可以买20瓶汽水——>20(瓶)
20个空瓶可以换10瓶汽水——>10(瓶)
10个空瓶可以换5瓶汽水——>5(瓶)
5个空瓶可以换2瓶汽水——>2(瓶)——>剩1个空瓶
2个空瓶可以换1瓶汽水——>1(瓶)
2个空瓶可以换1瓶汽水——>1(瓶)
20元一共可以喝到39(瓶)汽水。
int main()
{
int money = 0;
printf("请输入您有多少钱:>");
scanf("%d", &money);
int empty = money;
int sum = money;
while (empty > 1)//如果空瓶数大于1,进入循环
{
if (empty % 2 != 0) //空瓶数为奇数
{
sum = sum + empty / 2; //2个空瓶换一瓶汽水
empty = empty / 2; //若为奇数空瓶数除2则会丢弃掉一个瓶子
empty++; //补充丢掉的瓶子
}
else
{
sum = sum + empty / 2; //空瓶数为偶数
empty = empty / 2; //10-->5
}
}
printf("您一共可以喝到 %d 瓶饮料\n", sum);
return 0;
}