这道题就是典型的拿空杯子换水的题,接下来代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,d,r,ans;
long long n;
cin>>n>>m;d=n/m;r=n%m;ans=n;
while(d+r>=m){
d=n/m;r=n%m;ans+=d;
n=d+r;
}
if(d+r==m-1) ans++;
cout<<ans<<endl;
return 0;
}
本题需要注意的是n的取值范围,是long long。它的格式与欧几里得的辗转相除法十分类似。
这题比较简单,就不再多说了。