百练 2718 晶晶赴约会

本文概述了AI音视频处理领域的关键技术,包括视频分割、语义识别、自动驾驶、AR、SLAM等,并探讨了其在实际应用中的作用。
<think>根据用户的问题,需要参考提供的引用内容,尤其是关于"晶晶约会"问题的Java解决方案。多个引用中都提供了Java代码示例,如引用[1], [2], [3]都有Java代码实现。其中引用[1]和[2]的代码较为完整。 用户要求使用Java解决"晶晶约会"问题。该问题描述如下: - 输入一个整数表示星期几(1到7,1表示星期一,7表示星期日)。 - 晶晶在星期一、星期三、星期五(即1、3、5)有课,不能约。 - 其他时间可以约,输出"YES",否则输出"NO"。 根据引用内容,解决方案有两种主要方式: 1. 使用if-else语句(如引用[1]和引用[4]的C++版本,但逻辑相同)。 2. 使用switch-case语句(如引用[2]的Java代码)。 下面将分别提供两种实现方式,并解释代码逻辑。 ### 方法1:使用if-else语句 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int day = input.nextInt(); // 输入星期几 if (day == 1 || day == 3 || day == 5) { System.out.println("NO"); // 1、3、5不能约 } else { System.out.println("YES"); // 其他时间可以约 } } } ``` ### 方法2:使用switch-case语句 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int day = input.nextInt(); switch(day) { case 1: case 3: case 5: System.out.println("NO"); break; case 2: case 4: case 6: case 7: System.out.println("YES"); break; } } } ``` ### 解释 - **输入处理**:使用`Scanner`类读取用户输入的整数(1-7)。 - **条件判断**: - 在if-else版本中,直接判断输入是否为1、3或5,如果是则输出"NO",否则输出"YES"。 - 在switch-case版本中,将输入值与1、3、5匹配,匹配则输出"NO";与2、4、6、7匹配则输出"YES"。 - **注意**:题目保证输入是1-7的整数,因此不需要考虑其他数字。 这两种方法都是正确的,可以根据个人偏好选择使用。引用[1]和[2]都提供了类似的实现[^1][^2]。 §§相关问题§§ 1. 如何扩展程序以处理输入错误(如输入数字不在1-7范围内)? 2. 除了if-else和switch-case,还有哪些方法可以解决这类问题? 3. 晶晶约会问题的时间复杂度是多少? </think>根据引用内容,我将详细解释如何用Java解决"晶晶约会"问题。这个问题要求判断晶晶是否能接受约会邀请,规则是:周一(1)、周三(3)、周五(5)有课不能约,其他时间可以约。 ### Java解决方案 #### 方法1:使用if-else条件判断(推荐) ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int day = input.nextInt(); // 输入星期几(1-7) if (day == 1 || day == 3 || day == 5) { System.out.println("NO"); // 周1/3/5有课,不能约 } else { System.out.println("YES"); // 其他时间可以约 } } } ``` #### 方法2:使用switch-case语句 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int day = input.nextInt(); switch(day) { case 1: // 周一 case 3: // 周三 case 5: // 周五 System.out.println("NO"); break; default: // 其他日期 System.out.println("YES"); } } } ``` ### 代码说明 1. **输入处理** - 使用`Scanner`读取用户输入的整数(1-7) - 1=周一, 2=周二,...,7=周日 2. **核心逻辑** - 只需判断是否为周一(1)、周三(3)或周五(5) - 满足这三个条件输出`NO`,否则输出`YES` 3. **注意事项** - 输入保证是1-7的整数(根据题目约束) - 不需要处理非数字或越界输入 - 两种方法时间复杂度均为$O(1)$,空间复杂度$O(1)$ ### 示例执行 | 输入 | 输出 | 说明 | |------|------|--------------| | 1 | NO | 周一有课 | | 2 | YES | 周二可约 | | 6 | YES | 周六可约 | | 3 | NO | 周三有课[^2] | 两种实现方式在功能上完全等效,if-else版本更简洁,switch-case版本在扩展更多条件时更灵活[^1][^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值