这题我会,其实没那么难,不知道为啥大家的做法那么麻烦……
查看原帖
这题我会,其实没那么难,不知道为啥大家的做法那么麻烦……
184159
xiongyx楼主2021/3/7 17:03
#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;
}

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

2021/3/7 17:03
加载中...