#43297: python不用遞迴解


11231262@stu.tshs.tp.edu.tw (二勇27林承翰)

學校 : 不指定學校
編號 : 244860
來源 : [118.168.225.34]
最後登入時間 :
2024-11-03 01:36:12
f640. 函數運算式求值 -- APCS201902程式實作題3 | From: [60.248.90.40] | 發表日期 : 2024-10-18 14:32

從後面往前讀,讀到f, g, h再往前找答案,因為python的str可以用split,且可以無痛轉成int

總之就是從後面開始讀,算好就把數值替換掉

x = input()
x = x.split(' ')
for i in range(len(x)-1, -1, -1):
    if x[i] == 'f':
        n = x[i+1] * 2 - 3
        del x[i]
        x[i] = n
    if x[i] == 'g':
        n = x[i+1] * 2 + x[i+2] - 7
        del x[i]
        del x[i]
        x[i] = n
    if x[i] == 'h':
        n = x[i+1] * 3 - x[i+2] * 2 + x[i+3]
        del x[i]
        del x[i]
        del x[i]
        x[i] = n
    else:
        x[i] = int(x[i])
print(x[0])

 
#43823: Re: python不用遞迴解


11231262@stu.tshs.tp.edu.tw (二勇27林承翰)

學校 : 不指定學校
編號 : 244860
來源 : [118.168.225.34]
最後登入時間 :
2024-11-03 01:36:12
f640. 函數運算式求值 -- APCS201902程式實作題3 | From: [118.168.225.34] | 發表日期 : 2024-11-03 01:32

從後面往前讀,讀到f, g, h再往前找答案,因為python的str可以用split,且可以無痛轉成int

總之就是從後面開始讀,算好就把數值替換掉

def main():
    x = input().split(' ')
    for i in range(len(x)-1, -1, -1):
        if x[i] == 'f':
            x[i] = x[i+1] * 2 - 3
            del x[i+1:i+2]
            continue
        if x[i] == 'g':
            x[i] = x[i+1] * 2 + x[i+2] - 7
            del x[i+1:i+3]
            continue
        if x[i] == 'h':
            x[i] = x[i+1] * 3 - x[i+2] * 2 + x[i+3]
            del x[i+1:i+4]
            continue
        x[i] = int(x[i])
    print(x[0])
main()

AC 19ms 3.4MB



 
ZeroJudge Forum