【GESP】C++一级真题练习(202312)luogu-B3921,小杨的考试
GESP一级真题练习。为2023年12月一级认证真题。逻辑计算问题。
luogu-B3921
题目要求
描述
今天是星期 X,小杨还有 N 天就要考试了,你能推算出小杨考试那天是星期几吗?(本题中使用 7 表示星期日)
输入
输入 2 行,第一行一个整数 X(1≤X≤7);第二行一个整数 N(1≤N≤364)。
输出
输出一个整数,表示小杨考试那天是星期几。
输入样例-1
1
6
输出样例-1
7
输入样例-2
5
3
输出样例-2
1
题目分析
直接的思路,当前星期数 + N天数,然后对7取余,余数是几就是星期几。
当然根据题目要求,星期天用7来表示。那么就是余数是0的时候,输出7即可。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main() {
// 定义变量a表示当前星期数,b表示还有多少天考试
int a, b;
// 从标准输入读取a和b的值
cin >> a >> b;
// 计算考试那天的星期数:当前星期数加上天数后对7取余
int ans = (a + b) % 7;
// 如果余数为0,表示是星期天,根据题目要求用7表示
if (ans == 0) {
ans = 7;
}
// 输出结果
cout << ans;
return 0;
}
另外一种解题思路,是孩子的,先算增加的天数取余7,因为7天一个循环,星期不变,然后加上原来的星期,再看是不是大于7,处理一下即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main() {
// 定义变量a表示当前星期数,b表示还有多少天考试
int a, b;
// 从标准输入读取a和b的值
cin >> a >> b;
// 计算增加的天数对7取余,因为7天一个循环,星期不变
int i = b % 7;
// 加上原来的星期数,得到考试那天的星期数
int j = a + i;
// 如果结果大于7,需要减去7,因为一周只有7天
if (j > 7) {
j -= 7;
}
// 输出考试那天是星期几
cout << j;
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP 学习专题站:GESP WIKI
“luogu-”系列题目可在洛谷题库进行在线评测。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
欢迎加入:Java、C++、Python技术交流QQ群(982860385),大佬免费带队,有问必答
欢迎加入:C++ GESP/CSP认证学习QQ频道,考试资源总结汇总
欢迎加入:C++ GESP/CSP学习交流QQ群(688906745),考试认证学员交流,互帮互助
本文由作者按照 CC BY-NC-SA 4.0 进行授权