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;
}