解题思路:
每次都算出当前自己手中的空瓶(n)最多能换多少瓶饮料(k)以及剩下的临时空瓶子数量(a),并且将这些饮料(k)第一时间加到喝的总瓶数(count)中,然后将临时空瓶子的数量和刚刚喝掉的饮料产生的空瓶子相加求出新的空瓶总量(n)。之后对n循环求可换饮料数和最后的空瓶数,当n等于2时,总瓶数(count)自增并跳出循环,等待下一次n的输入。
注意事项:
当前空瓶为2一定要特判,喝的总瓶数加1。
参考代码:
#include<iostream> using namespace std; int main() { int n; int a,k; cin>>n; while(n!=0) { int count=0; while(n>=2) { if(n==2) { count++; break; } else { a=n%3; k=n/3; count+=k; n=a+k; } } cout<<count<<endl; cin>>n; } return 0; }
0.0分
1 人评分