目录
一、问题描述
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。
二、问题分析
所以在计算空瓶的总数时,我们需要将用钱买的和使用空瓶换的都相加起来,注意,在使用空瓶是,由于置换时不满足两个的条件会余下一个未置换的空瓶,这个未置换的空瓶在下一次统计空瓶数量时应该加上。
三、代码实现
3.1 方法一
int main()
{
int money = 0;
scanf("%d", &money);
int total = money;
int empty = money;
while (empty >= 2)
{
total += empty / 2;
empty = empty / 2 + empty % 2;
}
printf("%d\n", total);
return 0;
}
3.2 方法二
在我们运行上述代码时,我们会发现,钱数和瓶子的数目会有一定的关联,当然我们也可以通过数学归纳法来得知其关系:total = 2 * money - 1;
int main()
{
int money = 0;
scanf("%d", &money);
int total = money;
int empty = money;
if (money <= 0)
{
total = 0;
}
else
{
total = 2 * money - 1;
}
printf("%d\n", total);
}