题解 | #汽水瓶#
汽水瓶
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判断即可。
