[C++] 汽水瓶

最简单的方法竟然是2个空瓶可以喝一瓶,所以空瓶数量除以2就是喝汽水瓶数最多的方案。 无语了。

我的思路是迭代,三空瓶喝一瓶,然后会多一空瓶,一直到瓶数小于3,特殊情况即2瓶时,可以再喝一瓶,且不再有空瓶。

#include<iostream>
using namespace std;

int main()
{
    int n;
    while (cin >> n && n != 0){
        int drunk_no = 0;
        while (n / 3){
            drunk_no += (n/3);
            n = n - (n/3)*2;
        }
        if ( n == 2){
            drunk_no += 1;
        }
        cout << drunk_no << endl;
    }
    return 0;
}