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即可。
示例代码
#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,处理一下即可。
#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
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP 认证学习微信公众号

Last updated on