社区讨论

这题我会,其实没那么难,不知道为啥大家的做法那么麻烦……

P1150Peter 的烟参与者 12已保存回复 14

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
14 条
当前快照
1 份
快照标识符
@lock2w75
此快照首次捕获于
2023/10/30 15:05
2 年前
此快照最后确认于
2023/11/05 02:20
2 年前
查看原帖
PASCAL
#include <bits/stdc++.h>
using namespace std;

int n, k; // 记得定义变量哦 
int sp, ans, cnt;
// cnt表示现有的烟数量,sp表示烟蒂的数量,ans表示已经抽了多少根烟 

int main() {
	// freopen(".in", "r", stdin);
	// freopen(".out", "w", stdout);
	
	cin >> n >> k; // 输入数据 
	cnt = n; // 赋初始值,一开始有 n 根烟 
	while (cnt != 0) { // while 循环记得加大括号 
		cnt--, sp++, ans++; // 抽 1 根烟,多 1 个烟蒂,答案加 1  
		if (sp == k) {
			sp = 0, cnt++; // 把 k 个烟蒂兑换成 1 根烟 
		} 
	} 
	cout << ans << endl; // 输出答案 
	
	// fclose(stdin);
	// fclose(stdout);
	return 0;
}

直接模拟就可以了,注释写的很详细~

回复

14 条回复,欢迎继续交流。

正在加载回复...