10分,wa和tle

P1150 Peter 的烟

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


|