#31453: 請問為甚麼這樣不對(py)


andy.lin61013@gmail.com (我是你爸)

學校 : 國立清華大學
編號 : 158445
來源 : [118.166.40.151]
最後登入時間 :
2022-08-02 21:19:43
c638. 天干地支 -- it's david | From: [118.166.40.151] | 發表日期 : 2022-08-01 23:04

sky = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
earth = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']

while True:
    try:
        skynum = 2
        earthnum = 6
        year = int(input())
        gap = year - 1906

        earthnum = earthnum + gap
        if (earthnum >= 0):
            loop = gap
            earthnum %= 12
            while (loop > 10):
                loop -= 10
            skynum += loop

        elif (earthnum < 0):
            loop = -gap
            earthnum %= 12
            while (loop > 10):
                loop -= 10
            skynum -= loop
        print(sky[skynum]+earth[earthnum])

    except: break
 
 
在IDE裡執行都沒問題
求解
 
#31470: Re: 請問為甚麼這樣不對(py)


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
c638. 天干地支 -- it's david | From: [59.115.4.5] | 發表日期 : 2022-08-03 13:07

sky = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
earth = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']

while True:
    try:
        skynum = 2
        earthnum = 6
        year = int(input())
        gap = year - 1906

        earthnum = earthnum + gap
        if (earthnum >= 0):
            loop = gap
            earthnum %= 12
            while (loop > 10):
                loop -= 10
            skynum += loop

        elif (earthnum < 0):
            loop = -gap
            earthnum %= 12
            while (loop > 10):
                loop -= 10
            skynum -= loop
        print(sky[skynum]+earth[earthnum])

    except: break
 
 
在IDE裡執行都沒問題
求解


你的skynum可能會超過10,例如輸入是1914 1915 1916的時候

 
ZeroJudge Forum