题目: 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). 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除以3,商就是新的兑换数,余数加上商就是新的的空瓶数,如此循环到新的空瓶子数小于3时跳出循环。
如果剩下两个空瓶,可以先借一瓶,再还空瓶。
#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; }