可乐商店问题
题目大意:
Once upon a time, there is a special coco-cola store. If you return three empty bottles to the shop,
you’ll get a full bottle of coco-cola to drink. If you have n empty bottles right in your hand, how manyfull bottles of coco-cola can you drink?要求:
Input
There will be at most 10 test cases, each containing a single line with an integer n (1 ≤ n ≤ 100). Theinput terminates with n = 0, which should not be processed.OutputFor each test case, print the number of full bottles of coco-cola that you can drink.SpoilerLet me tell you how to drink 5 full bottles with 10 empty bottles: get 3 full bottles with 9 emptybottles, drink them to get 3 empty bottles, and again get a full bottle from them. Now you have 2empty bottles. Borrow another empty bottle from the shop, then get another full bottle. Drink it, andfinally return this empty bottle to the shop样例输入:
Sample Input
310810Sample Output1540题目分析:
这是一道数学问题,考验的是数学思考能力。根据题中给出的示例可以让我们更清楚的计算出结果。用到了取余数与取除数(n=n/3+n%3),每次都要统计所喝的瓶子的总数量。
如果还剩两个空瓶子时可以借一个空瓶子再喝一瓶可乐。当n=0时不执行,程序结束。
程序代码:
1 #include2 #include 3 using namespace std; 4 5 int n[100]; 6 7 int main() 8 { 9 int n,a;10 while(scanf("%d",&n)) //输入空瓶子数量11 {12 if(n==0) //当n=0时程序结束13 break;14 a=0;15 while(n>2) //n>2时做此循环,统计所喝饮料的总数a16 {17 a+=n/3; 18 n=n/3+n%3;19 }20 if(n==2)21 a++; 22 cout< <
心得:
这道题主要考数学思考能力,把要做的公式想到,题目就变得简单了,而且题中还给了提示。虽然一道很简单的题目,我却做了一个多小时,有一处错误总也改不对,后来静下心来终于改对了,是一处很小的错误,这提醒我以后写程序时要注意细节,不要大体过了就算了。