比赛--可乐商店问题--解题报告

可乐商店问题

题目大意:

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 many
full 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). The
input terminates with n = 0, which should not be processed.
Output
For each test case, print the number of full bottles of coco-cola that you can drink.
Spoiler
Let me tell you how to drink 5 full bottles with 10 empty bottles: get 3 full bottles with 9 empty
bottles, drink them to get 3 empty bottles, and again get a full bottle from them. Now you have 2
empty bottles. Borrow another empty bottle from the shop, then get another full bottle. Drink it, and
finally return this empty bottle to the shop

样例输入:

Sample Input
3
10
81
0
Sample Output
1
5
40

题目分析:

这是一道数学问题,考验的是数学思考能力。根据题中给出的示例可以让我们更清楚的计算出结果。用到了取余数与取除数(n=n/3+n%3),每次都要统计所喝的瓶子的总数量。

如果还剩两个空瓶子时可以借一个空瓶子再喝一瓶可乐。当n=0时不执行,程序结束。

程序代码:

 1 #include<cstdio>
 2 #include<iostream>
 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时做此循环,统计所喝饮料的总数a
16         {
17             a+=n/3;
18             n=n/3+n%3;
19         }
20         if(n==2)
21             a++;
22         cout<<a<<endl;
23     }
24     return 0;
25 } 

心得:
这道题主要考数学思考能力,把要做的公式想到,题目就变得简单了,而且题中还给了提示。虽然一道很简单的题目,我却做了一个多小时,有一处错误总也改不对,后来静下心来终于改对了,是一处很小的错误,这提醒我以后写程序时要注意细节,不要大体过了就算了。

时间: 2024-10-10 13:11:24

比赛--可乐商店问题--解题报告的相关文章

比赛--大巧克力问题--解题报告

大巧克力问题 题目大意: Mohammad has recently visited Switzerland . As he loves his friends very much, he decided to buy some chocolate for them, but as this fine chocolate is very expensive(You know Mohammad is a little BIT stingy!), he could only afford buyin

比赛--十进制转换十六进制--解题报告

十进制转换十六进制问题 题目大意: 把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示. 要求: Input 每行一个整数x,0<= x <= 2^31. Output 每行输出对应的八位十六进制整数,包括前导0. 输入样例: Input 0 1023 Output 0x000000000x000003FF 题目分析: 用十六进制格式转换符输出 程序代码: 1 #include<cstdio> 2 #include<iostream> 3 usi

比赛--整理花园问题--解题报告

整理花园问题 题目大意: 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园.A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕.C 太太因为正身怀六甲无法加入她们的行列,便出了90元.请问这笔钱如何分给A.B 二位太太较为恰当?A 应得多少元?90/(5+4)*5=$50 元?如果这么想你就上当了!正确答案是60 元.如果没想通的话再想想吧. 下面回答一个一般性的问题:假定A 太太工作了x 天,B 太太工作了y 天,C 太太出了90元,则A 太太应得多少元?输入保证二位太太均

比赛--建金字塔问题--解题报告

建金字塔问题 题目大意: Vanya got n cubes. He decided to build a pyramid from them. Vanya wants to build the pyramid as follows: the top level of the pyramid must consist of 1 cube, the second level must consist of 1 + 2 = 3 cubes, the third level must have 1 +

POJ 1905(集训比赛2B_A题)解题报告

题目链接:http://poj.org/problem?id=1905 --------------------------------------------------------- 题意:一个线段,给出长度.加热温度及热膨胀系数,线段加热后变为圆弧的一部分,要求求弧顶长度为多少. 思路:简单的画一下图,发现几何关系还是比较明确的,但是发现x的数学表达式并不容易解出来,所以采用二分法求值的方法.选择二分的对象很重要,直接选择对要求的x进行二分,避免角度误差太大. 代码: #include <

POJ 3122 (集训比赛2B_B题)解题报告

题目链接:http://poj.org/problem?id=3122 -------------------------------------------------------- 题意:每人只能从一个派里面切割,要求每个人的派的面积相等,求这个最大面积. 思路:二分法,下限是所有人从最小的里面切割,上限是所有派都完全分割.每次进行二分,判断解是否可行,通过可行性,对上下限进行调整,最终得到结果. 代码: #include <cstdio> #include <cmath> i

CodeForces 551C(集训比赛2B_C题)解题报告

题目链接:http://codeforces.com/problemset/problem/551/C --------------------------------------------------------------------------------- 题意:有n个地点,每个地点有箱子,然后有一定人数,每个人从第i个位置移动到第i+1的位置花费1S,每个人移动一个箱子花费1S,要求把所有箱子全部移除花费的最小时间是多少 思路:二分+贪心的思想,每次对一名学生进行判断.对所求时间进行

杭州电子科技大学Online Judge 之 “确定比赛名次(ID1285)”解题报告

杭州电子科技大学Online Judge 之 "确定比赛名次(ID1285)"解题报告 巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) Problem Description 有N个比赛队(1<=N<=500).编号依次为1,2,3,.....N进行比赛.比赛结束后.裁判委员会要将全部參赛队伍从前往后依次排名. 但如今裁判委员会不能直接获得每一个队的比赛成绩,仅仅知道每场比赛的结果.即P1赢P2,用P1.P2表示,排名时P

CH Round #56 - 国庆节欢乐赛解题报告

最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树,其中一些树上结有能够产生能量的魔力水果.已知每个水果的位置(Xi,Yi)以及它能提供的能量Ci.然而,魔幻森林在某些时候会发生变化:(1) 有两行树交换了位置.(2) 有两列树交换了位置.当然,树上结有的水果也跟随着树一起移动.不过,只有当两行(列)包含的魔力水果数都大于0,或者两行(列)都没有魔