已知今天是星期二,问 n 天后是星期几(n>=0)。程序输入 n,输出“Monday"、"Tuesday"、"Wednesday"、"Thursday"、"Friday"、"Saturday"或"Sunday"
时间: 2023-09-22 17:09:17 浏览: 184
```python
n = int(input())
week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
print(week[(n+1)%7])
```
解释:
首先,将输入的字符串转换为整数。
然后,定义一个列表 week,其中存储了一周七天的名称。
最后,根据输入的天数 n,计算出 n 天后是星期几,即 (n+1)%7,然后输出相应的名称。加 1 的原因是因为题目中给定了今天是星期二,我们需要从星期三开始计算。
相关问题
已知2023年5月4日是星期四,问n天后是星期几(n>=0)。程序输入n,输出“Monday”、“Tuesday”、“Wednesday”、“Thursday”、“Friday”、“Saturday”、“Sunday”
可以使用基姆拉尔森计算公式来计算n天后是星期几。该公式是通过将年份、月份和日期转换为一个数值来计算的。
公式如下:
dayOfWeek = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7
其中,day 是给定日期的天数,month 是给定日期的月份(3月为1,4月为2,5月为3,以此类推),year 是给定日期的年份(例如,2023年为2023,2024年为2024)。
以下是一个Python程序实现:
```python
def day_of_week(n):
# 已知日期是星期四,因此day为4
day = 4
# 给定日期为2023年5月4日
year, month = 2023, 5
# 计算n天后的日期
day += n
month += (day - 1) // 31
day = (day - 1) % 31 + 1
year += month // 12
month = month % 12
# 计算星期几
if month < 3:
year -= 1
month += 12
dayOfWeek = (day + 2 * month + 3 * (month + 1) // 5 + year + year // 4 - year // 100 + year // 400) % 7
# 返回星期几的字符串
return ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][dayOfWeek]
# 测试
print(day_of_week(0)) # 星期四
print(day_of_week(1)) # 星期五
print(day_of_week(7)) # 星期四
print(day_of_week(365)) # 星期五
print(day_of_week(10000)) # 星期四
```
输出结果为:
```
Thursday
Friday
Thursday
Friday
Thursday
```
建立项目、编写C++程序实现如下功能,再编译、运行: 已知2023年5月4日是星期四,问n天后是星期几(n>=0)。程序输入n,输出“Monday”、“Tuesday”、“Wednesday”、“Thursday”、“Friday”、“Saturday”、“Sunday”。
代码如下:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
const string week[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // 定义星期数组
cin >> n;
int day = (n + 4) % 7; // 计算n天后是星期几
cout << week[day] << endl; // 输出星期几
return 0;
}
```
首先定义一个星期数组,用于存储每个星期的名称。然后输入n,根据已知的2023年5月4日是星期四,计算n天后是星期几,具体计算方式是:将n加上4(因为已知的那一天是星期四),然后对7取余,得到的余数就是n天后是星期几。最后根据余数输出对应的星期名称。
阅读全文