spacex_dragon 发表于 2021-3-8 10:36:19

关于判断闰年小甲鱼的思路问题

'''题目:写一个程序,判断给定年份是否为闰年
(这样定义闰年的:能被4整除但不能被100整除,或者能被400整除都是闰年)'''



# 下面是我自己的思路,好像这样才更直白的体现题目描述吧?
while True:
    year = input('请输入要判断的年份:')
    if year.isdigit():
      year = int(year)
      if year % 4 == 0 and year % 100 != 0:
            print(year,'是闰年')
      elif year % 400 == 0:
            print(year,'是闰年')
      else:
            print(year,'不是闰年')
    else:
      print('输入类型有误,只能输入数字!')


# 下面是小甲鱼的答案,思路理解不了,请大神指点

temp = input('请输入一个年份:')
while not temp.isdigit():
    temp = input("抱歉,您的输入有误,请输入一个整数:")

year = int(temp)
if year/400 == int(year/400):# 为什么要这样判断?
    print(temp + ' 是闰年!')
else:
    if (year/4 == int(year/4)) and (year/100 != int(year/100)):# 为什么要这样判断?
      print(temp + ' 是闰年!')
    else:
      print(temp + ' 不是闰年!')

coolsummer2080 发表于 2021-3-8 10:43:32

小甲鱼只是提供了另一种判断是否整除的方法:当a/b的结果与a/b强制转成整数相等,就说明a/b是可以整除的。
如果认同我的回答,给个最佳答案呗!{:5_101:}{:9_233:}

spacex_dragon 发表于 2021-3-8 10:56:26

coolsummer2080 发表于 2021-3-8 10:43
小甲鱼只是提供了另一种判断是否整除的方法:当a/b的结果与a/b强制转成整数相等,就说明a/b是可以整除的。
...

好的,谢谢大哥,最佳答案必须的!
不过你看看这么理解对不对?因为int()是强制截断后面小数的,如果year/400和int(year/400)相等,则表示,year/400为整数,也就是被整队了,对吗?

小伤口 发表于 2021-3-8 11:30:51

spacex_dragon 发表于 2021-3-8 10:56
好的,谢谢大哥,最佳答案必须的!
不过你看看这么理解对不对?因为int()是强制截断后面小数的,如果yea ...

有点没看懂
year/400如果是整数就不存在整队呀{:10_245:}

spacex_dragon 发表于 2021-3-8 12:09:16

小伤口 发表于 2021-3-8 11:30
有点没看懂
year/400如果是整数就不存在整队呀

打错一个字,我是想说:
如果year/400和int(year/400)的结果相等,则表示,year/400 的结果 就是整数,也就是被整除了

yuedong 发表于 2021-3-8 12:17:13

是这个意思

spacex_dragon 发表于 2021-3-8 12:54:43

yuedong 发表于 2021-3-8 12:17
是这个意思

万恶的小甲鱼,让我本来就捉襟见肘的脑细胞,又被狠狠蹂躏了一番!

coolsummer2080 发表于 2021-3-19 08:25:47

spacex_dragon 发表于 2021-3-8 10:56
好的,谢谢大哥,最佳答案必须的!
不过你看看这么理解对不对?因为int()是强制截断后面小数的,如果yea ...

是的。你说的没错。
页: [1]
查看完整版本: 关于判断闰年小甲鱼的思路问题