Skip to main content

1216.饮料换购

思路

一般数学问题都是先模拟找规律。

带入样例找规律。

  • 100/3 = 33 ... 1
  • 34/ 3 = 11...1
  • 12/3=4
  • 4/3=1

就是一个循环除,每次被除数都是上一次的商加上余数,当最后 n 小于 3 了说明已经无法换购了,所以结束。

代码

#include <bits/stdc++.h>

using namespace std;

int n;

int main() {
cin >> n;

int res = n;
while (1) {
res += (n / 3);
n = n / 3 + n % 3;
if (n < 3) break;
}
cout << res << endl;
return 0;
}