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 加入团队回答更多问题