13号又是一个星期五。13号在星期五比在其他日子少吗为了回答这个问题写一个程序要求计算每个月的十三号落在周一到周日的次数。 给出N年的一个周期要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数N为正整数且不大于400 这里有一些你要知道的 1、1900年1月1日是星期一 2、4611和9月有30天其他月份除了2月都有31天闰年2月有29天平年2月有28天
实现这个程序的一个方法是使用一个循环来计算每个月的十三号是星期几,然后统计每个星期的次数。以下是一个可能的实现:
def count_thirteenth_days(N):
# 定义每个月的天数
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 定义星期的名称
weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
# 初始化每个星期的次数为0
counts = {weekday: 0 for weekday in weekdays}
# 计算从1900年1月1日到1900+N-1年12月31日的总天数
total_days = sum(days_in_month) * N
# 根据闰年规则调整二月的天数
for year in range(1900, 1900 + N):
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
days_in_month[1] = 29
else:
days_in_month[1] = 28
# 计算每个月的十三号是星期几,并统计每个星期的次数
weekday = 0 # 1900年1月1日是星期一
for month_days in days_in_month:
weekday = (weekday + 13) % 7 # 计算下一个月的十三号是星期几
counts[weekdays[weekday]] += 1 # 统计次数
return counts
N = int(input("请输入周期年数N:"))
counts = count_thirteenth_days(N)
for weekday, count in counts.items():
print(weekday + ":", count)
这个程序首先定义了每个月的天数和星期的名称。然后,它使用一个循环来计算从1900年1月1日到1900+N-1年12月31日的总天数,并根据闰年规则调整二月的天数。接下来,程序计算每个月的十三号是星期几,并统计每个星期的次数。最后,程序输出每个星期的次数。
请注意,这个程序假设输入的年数N是一个正整数且不大于400。输入的合法性没有进行验证,需要根据实际情况进行验证
原文地址: https://www.cveoy.top/t/topic/hWlB 著作权归作者所有。请勿转载和采集!