题目描述:
1瓶汽水卖1块钱,顾客还可以用3个空汽水瓶换1瓶汽水喝。请问聪明的顾客最少可以花多少钱买到n瓶汽水喝?
说明:当顾客手中有两个空汽水瓶的时候,如果店家剩余1瓶以上,可以选择先借用1瓶汽水,喝完后连同手里先前已有的两个空汽水瓶还给店家即可。
输入描述:
输入为一个正整数n(1<=n<=100),表示可买汽水瓶数。
输出描述:
输出为一个正整数,表示所花钱数。
样例输入:
10
样例输出:
7
#include<stdio.h> int main() { int n,money,drunk,bottle;//bottle:手中有汽水瓶的个数 drunk:喝到汽水的瓶数 scanf("%d",&n); for(money=1;1;money++) { bottle=money; drunk=money; while(bottle>=3) { drunk+=bottle/3; bottle=bottle/3+bottle%3; } if (bottle==2) { drunk+=1; } if (drunk==n) { break; } } printf("%d",money); return 0; }