top1编程
← 返回题目
题解

晶晶赴约会

1 条题解

  • 0
    @ 2026-8-4 2:01:46

    解题思路

    贝贝邀请晶晶下周一去看展览,但是晶晶每个星期的 1、3、5 有课不能去。输入一个 1 到 7 的数字表示星期几,要判断晶晶能不能去。

    先列出条件:

    • 星期 1、3、5:晶晶有课,不能去,输出 NO。
    • 星期 2、4、6、7:晶晶没有课,可以去,输出 YES。

    这是一个"二选一"的判断问题,用 if else 语句解决。

    写法一:判断"能不能去"。如果输入的数字等于 1 或 3 或 5,就输出 NO;否则(也就是 2、4、6、7)输出 YES。注意用 ||(或者)把三个条件连起来,意思是"只要满足其中任何一个",这个 if 就成立。

    写法二:反过来判断,如果数字是 2、4、6、7 之一就输出 YES,否则输出 NO。两种写法结果一样,选一种用就行。

    我们可以验证一下:输入 2,2 不是 1、3、5 中的任何一个,所以走到 else,输出 YES,和样例一致。输入 3,3 正好是 1、3、5 中的一员,输出 NO。

    注意两个细节:

    1. YES 和 NO 必须全是大写字母,一个都不能小写;
    2. 数字 7 表示星期日,晶晶星期日没有课,所以也是 YES,别把它漏掉。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int day;   // 贝贝邀请的日期,1 到 7
        cin >> day;
    
        // 星期 1、3、5 晶晶有课,不能去
        if (day == 1 || day == 3 || day == 5) {
            cout << "NO" << endl;
        } else {
            // 其余日子(2、4、6、7)没有课,可以去
            cout << "YES" << endl;
        }
        return 0;
    }
    

    复杂度分析

    程序只读入 1 个数,做一次 if 判断,判断条件是固定的三次比较。时间复杂度和空间复杂度都是 O(1)。

    • 1