我很抱歉,这个问题可能已经被问过一百万次了,但是每个解决方案都是独特的,因此都是唯一错误的!
def is_leap(year):
leap = False
if year % 4 == 0:
leap = True
elif year % 100 != 0 and year % 400 == 0:
leap = True
elif year % 100 == 0 and year % 400 != 0:
leap = False
return leap
year = int(input())
print(is_leap(year))
它通过了所有测试。 2100除外。
它通过了测试用例 0 到 5,除了 1. 1 是 2100。
逻辑是:
evenly divided by 100? ———(no)——— evenly divisible by 4?
| |
(yes) (yes)
| |
evenly divided by 400? Leap
|
(yes)
|
Leap
所以代码应该是:
def is_leap(year):
leap = False
if year % 100 and not (year % 4):
leap = True
elif not (year % 100) and not (year % 400):
leap = True
return leap
year = int(input())
print(is_leap(year))