喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。
#define _CRT_SECURE_NO_WARNINGS 0
#include <stdio.h>
#include <windows.h>
#include <assert.h>
int drink_water(int money)
{
int drink = money; //开始喝的时候能喝几瓶
int empty_bottle = money; //喝完后剩几个空瓶子
while (empty_bottle > 1) //当空瓶子>=2时,进入循环
{
drink += empty_bottle / 2; //开始用两空瓶子换饮料
//换完后再喝,一共剩下的空瓶子(换完后喝完后剩的空瓶子+没换的空瓶子(0或1个))
empty_bottle = empty_bottle / 2 + empty_bottle % 2;
}
return drink;
}
//ps:若最后剩下1空瓶子,可以找老板借一瓶饮料,喝完后再连同手里之前剩下空瓶子一起还给他,这样就能多喝一瓶 :)
int main()
{
int money = 0;
printf("请输入有多少钱:\n");
scanf("%d", &money);
int drink = drink_water(money);
printf("一共喝了%d瓶\n", drink);
system("pause");
return 0;
}