本文为洛谷 [语言月赛 202410] 的全部题解(最后一题太麻烦暂时给不出完整代码)
目录
题一:
B4042 [语言月赛 202410] 顺序结构 - 洛谷 | 计算机科学教育新生态
题目大意和解答思路:
根据题目对输入进来的变量a进行操作即可
代码(C++):
int main() {
std::ios::sync_with_stdio(0);
std::cin.tie(0);
int a;
std::cin >> a;
std::cout << (a + 5) * 3 << " " << a * 3 + 5 << "\n";
}
题二:
题目大意和解答思路:
题目关键:
她想知道有哪些刻度和 a 厘米刻度的距离恰好是 b
比较a - b >= 0, 比较 a + b <= n
满足前者,就输出a - b
满足后者,就输出a + b
都不满足就输出No solution
注意b = 0 的时候,输出a
根据上面思路即可很快完成代码
我这里使用一个vector简化
代码(C++):
int main() {
std::ios::sync_with_stdio(0);
std::cin.tie(0);
int n, a, b;
std::cin >> n >> a >> b;
if (b == 0) {
std::cout << a << "\n";
return 0;
}
std::vector<int> res;
if (a - b >= 0) res.push_back(a - b);
if (a + b <= n) res.push_back(a + b);
if (res.empty()) {
std::cout << "No solution\n";
} else {
for (int x : res) {
std::cout << x << " ";
}
std::cout << "\n";
}
}
题三:
B4045 [语言月赛 202410] 同桌 - 洛谷 | 计算机科学教育新生态
题目大意和解答思路:
就是说,现在是第一周的周六
然后每个课程都会在第一次课都会在第一周开始,w为星期几开始,d为隔几周开一次课
求下一次最近上课的需要隔多少天
都是周一到周五,所以没有其他的条件
直接算出每个课程下次上课的间隔,然后求出最小值即可
代码(C++):
int main() {
std::ios::sync_with_stdio(0);
std::cin.tie(0);
int n;
std::cin >> n;
int res = 14 * 7; //d 最大为14,所以可以初始化14 * 7
for (int i = 0;