链接
用变量 m 记录得到的瓶盖数,m >= 3时可以兑换( m / 3)瓶新饮料,对于其中每一瓶会产生一个瓶盖,如此,会产生 ( m / 3)个瓶盖,考虑到会有1 或 两个瓶盖的剩余导致无法继续兑换,所以用二者的加和去更新 m.
Code:
#include <bits/stdc++.h>
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n;
std::cin >> n;
int m = n;
while (m >= 3) {
n += m / 3;
//瓶盖换饮料
m = m % 3 + m / 3;
//多余的瓶盖数 + 新换来的饮料的瓶盖数
}
std::cout << n;
return 0;
}