代码求调

P1150 Peter 的烟

DPG_DPG123 @ 2023-07-04 08:49:43

# include <iostream>
using namespace std;
int main(){
    int n,k,ans = 0;
    cin >> n >> k;
    for (int i = 1;i <= n;i ++){
        ans ++;
        if (i % k == 0) ans ++;
    }
    cout << ans;
    return 0;
}

https://www.luogu.com.cn/record/100733335

只需要错误点及改正方法


by ww23 @ 2023-07-04 09:11:19

错误点:用烟蒂换的新烟抽完得到的烟蒂还可以继续换烟。

所以i的上限是动态变化的,不简单地等于n

可以把第6行的ans++移到for语句之前变成ans = n,然后for修改为i <= ans


by ww23 @ 2023-07-04 09:14:10

例子:10 3

抽完第1~3根,得到新烟,共11支;

抽完第4~6根,得到新烟,共12支;

抽完第7~9根,得到新烟,共13支;

抽完第10~12根,得到新烟,共14支;

抽完第13~14根,无新烟。

所以共14支烟,而不是13根。


by Galaxy2aa @ 2023-07-04 09:33:28

 #include <bits/stdc++.h>

     using namespace std;
     int main(){
         int n,k;
         cin>>n>>k;
         cout<<n+(n-1)/(k-1);
         return 0;
     } 

c++可以这么写 加入https://www.luogu.com.cn/team/60985 加入团队回答更多问题


|