题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82974#problem/C
解题思路:理清题目的意思非常重要,题目的意思就是,3个空瓶子可以换一瓶饮料,若手里只有两个空瓶子了,可以向商店借一个空瓶子兑换饮料喝完后,再将瓶子还给商店,假如手里有10个空瓶子,则可以喝5瓶饮料,9个空瓶子可以兑3瓶饮料,剩一个空瓶子,饮料喝完后,又有四个空瓶子,可以兑一瓶饮料,则此时手里还有两个空瓶子,向商店借一个空瓶子,又可以兑一瓶饮料啦``
程序代码:
#include <iostream> using namespace std; int main() { int n; while(cin>>n&&n!=0) { int sum=0; while(n>=3) { sum=sum+n/3; n=n/3+n%3; } if(n==2) ++sum; cout<<sum<<endl; } return 0; }