这道题一看到智力题三个字还紧张了一下,觉得自己智力不太够用。但是这个智力题还是蛮简单的。
设定一个变量total表示每一轮手上的空汽水瓶总数。total/3是这一轮能换的汽水瓶数,加到结果res里。total%3是剩下的汽水瓶数。两者加起来就是新一轮的total。注意total == 2的时候,res+1返回。total == 1或者total == 0,直接返回res
#include <iostream>
using namespace std;
int main()
{
int n = 0;
while(cin >> n){
if(n == 0) break;
int total = n;
int res = 0;
while(total > 2)
{
int r = total / 3;
res += r;
int yu = total % 3;
total = r + yu;
}
if(total == 2)
cout << res + 1 << endl;
else
cout << res << endl;
}
}