一道大水题,因为太着急了,所以刚写的时候细节没有考虑清楚
对于7 2这组数据
正确的结果应该是:13
ans += 7/2×2 == 6
tmp = 7/2+7%2 = 4
ans += 4/2×2 == 10
tmp = 4/2+4%2 = 2
ans += 2/2×2 == 12
tmp = 2/2+2%2 = 1
ans += 1 == 13
保存每次计算剩余的数量tmp是关键
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main(void) {
int n, m, tmp, ans, cnt;
cin >> n >> m;
if(n < m) {
cout << n << endl;
return 0;
}
ans = n/m*m;
tmp = n;
while(tmp >= m) {
tmp = tmp/m+tmp%m;
ans += tmp/m*m;
}
if(tmp != n)
ans += tmp;
cout << ans << endl;
return 0;
}