题目
⽔已知1瓶汽⽔1元,2个空瓶可以换⼀瓶汽⽔,输⼊整数n(n>=0),表⽰n元钱,计算可以多少汽⽔,请编程实现
解法
首先我们定义总数为能买sum瓶汽水,首先有n元,那就一共能买n瓶,然后(瓶子个数)bottle=n,
思考时,假如为偶数,那此题变成了一个求类似于等比数列的问题n+n/2+n/2/2+......,
单n为奇数时,第一次用瓶子换汽水就会有一个剩余的瓶子,到了第二次换的时候,bottle则需+1,
所以每换完后的bottle=bottle%2+bottle/2;再用一个while循环便可以了
#include <stdio.h>
int main()
{
int n = 0,sum = 0,bottle = 0;
scanf("%d", &n);
sum += n;
bottle = n;
while (bottle > 1)
{
sum+= bottle / 2;
bottle=bottle % 2 + bottle / 2;
}
printf("%d", sum);
return 0;
}