ans每次累加商
n每次更新为商和余之和
最后到了3以下时,判断是否为2(即不为1和1),为2则再加一即可
#include<iostream> using namespace std; int main () { int n; while (cin >> n) { int ans = 0; if (n == 0) { break; } while (n >= 3) { ans += n / 3; n = n / 3 + n % 3; } if (n == 2) { ans++; } cout << ans << endl; } return 0; }