11877 The Coco-Cola Store, 11877coco-cola
Question: 11877 The Coco-Cola Store
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).
Input terminates with n = 0, which shoshould 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
Ideas:
Each time we use the existing empty bottle n divided by 3, the commodity is the new number of exchanges, the remainder plus the commodity is the new number of empty bottles, so that when the number of new empty bottles is less than 3, the cycle jumps out.
If there are two empty bottles left, you can borrow one first and then restore the empty bottles.
#include <iostream>using namespace std;int main(){int n,i,j,x,y,sum;cin>>n;while(n!=0){sum=0;while(n>=3){x=n%3;y=n/3;sum=sum+y;n=y+x;}if(n==2)sum++;cout<<sum<<endl;cin>>n;}return 0;}