晶晶赴约会

GitHub跳转原题关系图返回列表

读入一个 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;
}