题解 | #汽水瓶#
汽水瓶
https://www.nowcoder.com/practice/fe298c55694f4ed39e256170ff2c205f
#include <iostream> using namespace std; int main() { int n,cnt; cin >> n; while(n!=0) { cnt = 0; while(n>=3) { cnt += n/3; n = n/3 + n%3; } if(n == 2) cnt+=1; cout << cnt <<endl; cin>>n; } }
有点像是小学计算题。。对于n个空的汽水瓶,按3:1的比例换成汽水后,反复的喝,喝完后会有新的空瓶子,可以再换,所以再进行3:1的比例进行更换,直到n<3为止,就没法再更换了,cnt的计数值也就不再增加了,除开最后一种特殊情况,即还剩下两瓶空瓶子,可以再找老板借一瓶,喝了后又凑齐三个,可以还回去,仅限于最后剩下两个空瓶子,所以单独一个if判断即可。