★每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。
注:编程时不应只局限于20元钱总数的这一种情况,而是根据输入的整数金额计算出相应的汽水数。
#include<stdio.h> #include<stdlib.h> int empty_bottle(int money) { int emp_bottle = money, lea_bottle = 0, num = 0; //emp_bottle表示空瓶数 while (1) //lea_bottle表示换取后的空瓶数 { num += emp_bottle; lea_bottle = emp_bottle + lea_bottle % 2; //因为存在3个空瓶换1瓶汽水,仍旧遗留有一个空瓶等这种情况 emp_bottle = lea_bottle / 2; if (lea_bottle == 1) //判断最后是否为最后一个空瓶 { return num + 1; //num+1是考虑最后一瓶汽水可以借用一瓶汽水后的两个空瓶不再换取的情况,,如果不考虑此种情况,则直接返回num即可 } } } int main() { int money = 0, ret=0; printf("请输入金额:"); scanf("%d",&money); ret = empty_bottle(money); printf("共计能喝%d瓶汽水:\n", ret); system("pause"); return 0; }