CtrlCV工程師 发表于 2022-1-8 23:19:45

有关十二生肖年份的问题

def shengxiao(year):
                #求生肖
    zodiac=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
    index=(year-1972)%12        #1972年为鼠年
    return zodiac

myyear=int(input("请输入出生年份,输入0结束:"))
while myyear!=0:
    print("你的生肖是:",shengxiao(myyear))
    myyear=int(input("请输入出生年份,输入0结束:"))
我不理解的是:为什么我输入一个比1972还小的数,程序还能算对?
请输入出生年份,输入0结束:1
你的生肖是: 鸡

傻眼貓咪 发表于 2022-1-8 23:42:17

你的真正问题应该是想问:为什么负数可以取模对吗?

正解:负数是可以取模的,至於为什么,你要问发明数学的人。

kogawananari 发表于 2022-1-9 03:12:47

得虧python的%是取模 所以比較方便 如果是其他語言還得自己寫取模的算法{:10_292:}

大马强 发表于 2022-1-9 09:45:08

因为负数可以取模操作
-2 % 5 = 3
-1 % 999 = 998
页: [1]
查看完整版本: 有关十二生肖年份的问题