90分求助

P1150 Peter 的烟

ordoki @ 2023-01-17 10:45:06

dalao们帮忙看看哪错了,谢谢

#include<iostream>
using namespace std;
int n,k,ans=0;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);//加快输入输出
    cin>>n>>k;
    while(n){
        ans+=n;
        n/=k;
    }
    cout<<ans;
    return 0;
}

评测记录


by IDNo1 @ 2023-01-17 11:26:51

@ordoki 按公式,不需要模拟

 ans = n + (n - 1) / (m - 1);

by ordoki @ 2023-01-17 11:29:49

@IDNo1 您好,请问这个公式是什么意思话说m是k吗


by Ggsddu_zzy @ 2023-01-17 11:40:07

@ordoki

记录一下每次剩下不能组成烟的烟蒂,最后合在一起,还可以组成烟。

#include<iostream>
using namespace std;
int n,k,ans=0;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);//加快输入输出
    cin>>n>>k;
    int mod=0;
    while(n){
        ans+=n;
        n/=k;
        mod+=n%k;
    }
    if(mod>=k){
        ans+=mod/k;
    }
    cout<<ans;
    return 0;
}

by ordoki @ 2023-01-17 11:44:24

@Ggsddu_zzy 谢谢,AC了


|