yun喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。
思路:
1. 20元首先可以喝20瓶,此时手中有20个空瓶子
2. 两个空瓶子可以喝一瓶,喝完之后,空瓶子剩余:empty/2(两个空瓶子换的喝完后产生的瓶子) + empty%2(不够换的瓶子)
3. 如果瓶子个数超过1个,可以继续换,即重复2 while循环
方法一
#include<stdio.h>
int main()
{
int money = 0;
int total = 0;
int empty = 0;
saanf("%d", &money);
total += money;//一开始有多少钱就有多少瓶
//钱换了多少个空瓶
empty += money;
//进行空瓶兑换 :
//使用while循环,当空瓶大于等于2进行兑换
while (empty >= 2)
{
//兑换后的瓶数加到总瓶中
total += empty / 2;
//计算换后喝完的总瓶数:
empty = empty / 2 + empty % 2;
//empyt/2:换了多少瓶就有多少瓶
//empty%2:加起来可能没到两瓶不够换1瓶
//加起来是总的空瓶数
//之后循环判断
}
//退出循环后进行打印
printf("%d", total);
return 0;
}
int main()
{
int money = 0;
int total = 0;
int empty = 0;
scanf("%d", &money);
total += money;//一开始有多少钱就有多少瓶
//钱换了多少个空瓶
empty += money;
//利用方法一的规律
if (money > 0)//防止0元计算出-1瓶的情况
{
total = money * 2 - 1;
}
//退出循环后进行打印
printf("%d", total);
return 0;
}
运行结果