读入一个 1..7 的整数表示周一到周日,若落在晶晶有课的 1、3、5 则输出 NO,否则输出 YES。
OJ: roj
题目 ID: 1049
难度:入门
标签:入门条件判断python
创建: 2026-09-29 16:21
更新: 2026-10-04 23:29
题目描述
晶晶每周的 1、3、5 有课必须上课,朋友约她下周去看展览,请帮她判断能否接受邀请:能接受输出 YES,不能输出 NO(大小写敏感)。输入一行整数 d,1 到 7 分别表示周一到周日;输出按判断结果输出 YES 或 NO。样例:输入 2,输出 YES。
思路
把题面直译成一次三路判断即可:读入 d,若 d 等于 1、3、5 之一则输出 NO,否则输出 YES。
参考代码
Python 版:
python
#!/usr/bin/env python3
# Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
# rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
# rainboy的学习导航网站: https://idx.roj.ac.cn
# create_at: 2026-09-29 16:21
# update_at: 2026-10-04 12:48
import sys
CLASS_DAYS = frozenset({1, 3, 5}) # 有课的日子:周一、周三、周五(题目给出的三个冲突日)
def solve() -> None:
data = iter(sys.stdin.buffer.read().split()) # 输入只有一个 token,顺序消费即可
day = int(next(data)) # 邀请日期,数字 1..7 表示周一到周日
has_class = day in CLASS_DAYS # 落在有课集合里就不能赴约,其余日子都可以
print("NO" if has_class else "YES")
if __name__ == "__main__":
solve()C++ 版(同一算法):
cpp
/**
* Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
* rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
* rainboy的学习导航网站: https://idx.roj.ac.cn
* create_at: 2026-10-04 23:29
* update_at: 2026-10-04 23:29
*/
// main.cpp:晶晶每周固定 1、3、5 有课,输入 1~7 表示周一到周日,判断能否赴约。
#include <iostream>
typedef long long ll;
int main() {
ll d; // 邀请日期,1 表示周一,7 表示周日
std::cin >> d;
std::cout << ((d == 1 || d == 3 || d == 5) ? "NO" : "YES") << std::endl;
return 0;
}