为什么总是80分,求助

P1150 Peter 的烟

LHX05 @ 2023-08-12 09:41:09


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

by OIerWu_829 @ 2023-08-12 09:46:04

。。。

建议您参考一下简单的题解


by rnf5114 @ 2023-08-12 09:47:17

@Lihaixin05 有没有种可能,你第二次抽完的烟还可以再换


by LHX05 @ 2023-08-12 09:53:39

@wzj0829 (n-1)/(k-1); 这个是什么意思? 我看题解也不懂啊


by OIerWu_829 @ 2023-08-12 09:57:27

@Lihaixin05

题解:

因为k个烟蒂=1根烟+1个烟蒂

所以k-1个烟蒂=1根烟

注意减掉最后一根烟的烟蒂

(因这题并没有借烟蒂换烟再还回这一说)

自己再代入算算


by LHX05 @ 2023-08-12 11:07:08

@wzj0829 谢谢老师


by OIerWu_829 @ 2023-08-12 11:47:04

不要叫我老师,

我9月份才6年级

求个关


by all___right @ 2023-08-12 13:54:54

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,k,a,c;//5
    cin>>n>>k;//6
    a=n+n/(k-1)-1;//7
    if(n%(k-1)==0){//8
        cout<<a;//9
    }
    else{
        c=n%k;//12
        cout<<((n-c)+(n-c)/(k-1))+c;//13
    }
    return 0;
}
//变量ac用于便捷,用k个烟蒂可以换1个,等于用了k-1个烟蒂
//在n个烟蒂里找k-1个烟蒂有多余用变量存
//n+(n/(k-1))是在没有多余情况下题目中说不能借瓶盖所以还要-1变成n+n/(k-1)-1
//有多余那就用另一个变量存多余,这里不用去异次元借瓶盖就是((n-c)+(n-c)/(k-1))+c
//多不多余看if判断

@Lihaixin05


by all___right @ 2023-08-12 13:57:09

老代码告诉我们c要剪掉:```

include<bits/stdc++.h>

using namespace std;

int main(){ int n,k,a,c;//5 cin>>n>>k;//6 a=n+n/(k-1)-1;//7 if(n%(k-1)==0){//8 cout<<a;//9 } else{ c=n%k;//12 cout<<a+c;//13 } return 0; }


(这个老代码30,有解析的全ACAJPD)

by all___right @ 2023-08-12 13:58:41

@Lihaixin05 m不一定能被n和k整除,而且你有没有想过n/k可能大于k?


by all___right @ 2023-08-12 14:00:37

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,k,a,c;//5
    cin>>n>>k;//6
    a=n+n/(k-1)-1;//7
    if(n%(k-1)==0){//8
        cout<<a;//9
    }
    else{
        c=n%k;//12
        cout<<a+c;//13
    }
    return 0;
}

老代码


| 下一页