90分,第三点没过,求大佬!!

P1150 Peter 的烟

MINK_D @ 2021-04-08 20:47:32

!!!

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n,k,s=0,l=0;
    cin>>n>>k;
    if(n>=k)
    s=n/k;
    if(s>=k) l=s/k;
    else if(s<k) l=0;
    cout<<n+s+l;
    return 0;
 } 

by 小杨小小杨 @ 2021-04-08 21:04:31

你没有判断当n/k有余数时把余数个烟蒂保存下来的情况。
还有,有可能它可以不止三次重复买,比如说10 2的情况,第一次买了5支烟,第二次买了2支,其实它还能再买。
根据你的代码改的AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,k,s=0,l=0;
    cin>>n>>k;l=n;
    while (n>=k){
        l=l+n/k;
        n=n%k+n/k;
    }
    cout<<l;
    return 0;
 } 

by MINK_D @ 2021-04-08 21:11:32

谢啦!!


by MINK_D @ 2021-04-08 21:12:16

秒懂!!


by 小杨小小杨 @ 2021-04-08 21:22:33

不谢(主要我也错过)


by 温迪QAQ @ 2021-06-01 20:26:04

#include<iostream>
using namespace std;
int main(){
    int n,s,k,a;cin>>n>>k;s=n;
    while(s/k!=0){
        a=s/k;
        s%=k;
        n+=a;s+=a;
    }
    cout<<n;
    return 0;
}

|