请编程统计:从1900年1月1日(当天是星期一)开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、……、星期日的次数分别是多少?请使用循环和数组实现。
时间: 2023-12-03 19:45:27 浏览: 128
以下是使用 Python 编程实现的代码:
```python
# 定义每个月的天数
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 定义星期几的名称
weekday_names = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
# 定义从1900年1月1日到当前年份经过的总天数
def get_total_days(year):
total_days = 0
for y in range(1900, year):
if y % 4 == 0 and (y % 100 != 0 or y % 400 == 0):
total_days += 366 # 闰年有366天
else:
total_days += 365 # 平年有365天
return total_days
# 统计每个月的13号是星期几
def count_thirteens(year):
total_days = get_total_days(year)
thirteens = [0] * 7 # 初始化为0
weekday = (total_days + 1) % 7 # 计算当年的1月1日是星期几
for month, days in enumerate(days_in_month):
for day in range(1, days+1):
if day == 13:
thirteens[weekday] += 1 # 统计13号是星期几的次数
weekday = (weekday + 1) % 7 # 更新星期几
return thirteens
# 测试代码
year = int(input("请输入年份:"))
thirteens = count_thirteens(year)
for i, count in enumerate(thirteens):
print('{}: {}'.format(weekday_names[i], count))
```
运行代码后,输入年份即可输出每个月的13号是星期一至星期日的次数。
阅读全文