gpt4 book ai didi

python - 欧拉计划 #19 - 计算星期天问题

转载 作者:行者123 更新时间:2023-12-05 04:37:40 30 4
gpt4 key购买 nike

我一直在研究这个问题。这个问题说你必须找出从 1901 年到 2000 年的每个月的第一天有多少个星期日。我已经让它大部分工作了,但它仍然输出 173,而不是 171(正确答案)。

有人知道这是为什么吗?

months = {1:31, 2:28, 3:31, 4:30, 5:31, 6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31}

start, end = 1900, 2001

years = range(start, end)
leap_years = range(1904, 2001, 4)

Sundays = 0
days = 1
for year in years:
if year in leap_years:
months[2] = 29
else:
months[2] = 28

for month in range(1, 13):
for day in range(1, months[month]+1):
if days == 7:
if day == 1:
print(year, month, day)
Sundays += 1
days = 1
else:
days += 1


print(Sundays)

最佳答案

您的算法完全正确 - 只是输入错误。 startend 应该是:

start, end = 1901, 2000

range(a, b) 函数不包含 b,但包含 a。因此 start 应该是 1901 而不是 1900。

end 有点棘手,你必须考虑问题的措辞:

... in the years 1901 to 2000

想一想 - 这意味着直到 2000 年 1 月 1 日(但不包括在内)的每一天。因此,您实际想要遍历并检查的最后一年是 1999 年。因此,将 end 设置为2000 将导致 range() 函数返回 2000 年之前的所有年份,但不包括 2000 年。这正是问题所要求的。

关于python - 欧拉计划 #19 - 计算星期天问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70690568/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com