求助!!!90分,第3个点过不去

P1150 Peter 的烟

fanzexuan @ 2021-04-01 22:02:16

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,k,m,x,ans;
    cin>>n>>k;
    m=ans=n;
    for(int i=1;;i++){
        if(m>k){
            x=m/k;//可换新烟 
            m=m-x*k+x;//换后旧烟蒂 
            ans=ans+x;//已经抽的烟数 
        }
        else break;
    }
    cout<<ans;
    return 0;
} 

by pldzy @ 2021-04-01 22:08:35

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,k,m,x,ans;
    cin>>n>>k;
    m=ans=n;
    for(int i=1;;i++){
        if(m>=k){
            x=m/k;//可换新烟 
            m=m-x*k+x;//换后旧烟蒂 
            ans=ans+x;//已经抽的烟数 
        }
        else break;
    }
    cout<<ans;
    return 0;
} 

by pldzy @ 2021-04-01 22:10:37

这样就好了 不是m > k 而是 m >= k 因为当m == k 时也可以在拿一根烟


by fanzexuan @ 2021-04-02 07:33:57

谢谢!


|