n还应加上再次吸剩下的烟蒂
```cpp
//l所剩烟蒂个数
l=n%k;
n=n/k;
ans+=n;
n+=l;
```
by 0907_WDS_0731 @ 2023-12-20 19:01:12
@[not_much](/user/1189340)
```cpp
#include <iostream>
using namespace std;
int main(){
int n,k,sum=0;
cin>>n>>k;
sum=n;
while(n>=k){sum+=n/k,n=n/k+n%k;}
cout<<sum<<endl;
return 0;
}
```
其中他至少抽了`n`根烟,所以`sum`初始化为`n`,又因为`n`根烟中每`k`根烟蒂兑换一根烟,所以`sum`要加上`n/k`,然后剩下`n/k`根烟蒂,还有原来没兑换的`n%k`根烟蒂,共剩下`n/k+n%k`根烟蒂,条件是`n>=k`,即能兑换烟。希望有帮助`QWQ`
by Walnutjuice @ 2023-12-23 13:59:36
@[Walnutjuice](/user/1185284) 现在90分
```cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k,ans;
cin>>n>>k;
ans=n;
while(1){
if(n<=k){
break;
}
ans+=n/k;
n=n%k+n/k;
}
cout<<ans<<"\n";
return 0;
}
```
by not_much @ 2023-12-25 17:44:25
```cpp
#include<iostream>
using namespace std;
int main(){
long long n,k,s=0,t=0;
cin>>n>>k;
while(n){
n--;
t++;
s++;
if(t==k){
t=0;
n++;
}
}
cout<<s;
return 0;
}
```
by linmoxi @ 2024-01-11 15:17:52