题解
晶晶赴约会
1 条题解
-
0
解题思路
贝贝邀请晶晶下周一去看展览,但是晶晶每个星期的 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。
注意两个细节:
- YES 和 NO 必须全是大写字母,一个都不能小写;
- 数字 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