题目ID:L1-024 分数:5分 语言:Java / Python
题目描述
如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的"后天"是星期几。
输入格式
输入第一行给出一个正整数 D(1 ≤ D ≤ 7),代表星期里的某一天。
输出格式
在一行中输出D天的后天是星期几。
样例
输入
3
输出
5
解题思路
今天是星期 D,后天 = D + 2。如果超过7,则需要取模(星期制是1~7的循环)。
公式:
D + 2如果 ≤ 7,直接输出- 如果 > 7,则输出
(D + 2 - 1) % 7 + 1,即((D + 2 - 1) % 7) + 1
更简单:((D + 1) % 7) + 1
验证:
- D=5(周五)→ (5+1)%7+1 = 6%7+1 = 6+1 = 7 ✓(周日)
- D=6(周六)→ (6+1)%7+1 = 7%7+1 = 0+1 = 1 ✓(周一)
- D=7(周日)→ (7+1)%7+1 = 8%7+1 = 1+1 = 2 ✓(周二)
代码实现
Java
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int D = Integer.parseInt(br.readLine().trim());
int result = ((D + 1) % 7) + 1;
System.out.println(result);
}
}
Python
D = int(input().strip())
result = ((D + 1) % 7) + 1
print(result)
运行验证
样例验证
输入:3
(3+1)%7+1 = 4%7+1 = 4+1 = 5
输出:5 ✓
更多测试
| 输入 | 星期 | 后天 | 输出 |
|---|---|---|---|
| 1 | 周一 | 周三 | 3 |
| 3 | 周三 | 周五 | 5 ✓ |
| 5 | 周五 | 周日 | 7 |
| 6 | 周六 | 周一 | 1 |
| 7 | 周日 | 周二 | 2 |
复杂度分析
- 时间复杂度:O(1)
- 空间复杂度:O(1)
总结
本题考察日期循环的取模计算,注意星期制的范围是1~7。