C语言之喝汽水问题
个人主页(找往期文章包括但不限于本期文章中不懂的知识点): 我要学编程(ಥ_ಥ)-CSDN博客
题目:
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。
我们假设是10元。先喝10瓶汽水,10个空瓶换了5瓶汽水,喝了5瓶汽水,5个空瓶换了2瓶汽水,剩了一个空瓶,喝了2瓶汽水,2个空瓶换了1瓶汽水,喝了1瓶汽水,剩了一个空瓶,加上我们之前剩的那瓶汽水,刚好又换1瓶汽水,最后,只剩下1瓶汽水了。
上面的都是我们用语言文字描述的,转换为数学文字即可。
#include <stdio.h>
int main()
{
int money = 0;
scanf("%d", &money);//20
int empty = 0;
int sum = 0;
sum = money;
empty = money;
while (empty >= 2)//空瓶数量少于2时,就没有汽水喝了
{
sum += empty / 2;//空瓶的数量除以2,就是可以换汽水的数量
empty = empty / 2 + empty % 2;//换汽水的数量等于空瓶的数量。empty % 2是上一次换汽水剩下的(要么是0,要么是1)
}
printf("%d\n", sum);
return 0;
}
至于这个剩下的1个空瓶,再去和老板借一瓶喝完在给他,这个我们是不考虑的。