#15922: python請教


dean52000@gmail.com (Andy)

學校 : 不指定學校
編號 : 87795
來源 : [220.136.212.138]
最後登入時間 :
2022-09-16 22:49:04
a005. Eva 的回家作業 -- POJ | From: [1.171.249.141] | 發表日期 : 2018-11-06 19:27

iimport sys
t = int(input())
while t > 0:
sl = []
 for a in sys.stdin:
  aa = a.split()
 for aaa in aa:
  sl.append(int(aaa))
  if sl[0]-sl[1] == sl[2]-sl[3]:
   sl.append(sl[3]-(sl[0]-sl[1]))
   print(sl[0],sl[1],sl[2],sl[3],sl[4])
  else:
   sl.append(sl[3]*int((sl[1]/sl[0])))
   print(sl[0],sl[1],sl[2],sl[3],sl[4])
  t = t - 1

 

輸入

2           

1 2 3 4

1 2 4 8

會跑出最後一筆輸出(1 2 4 8 16),如何才能先把第一筆輸出給系統判斷呢?還是說的程式是錯的阿...

 
#15925: Re:python請教


tang891228 (tang891228)

學校 : 國立成功大學
編號 : 61119
來源 : [140.116.1.138]
最後登入時間 :
2018-09-24 00:20:31
a005. Eva 的回家作業 -- POJ | From: [36.236.228.201] | 發表日期 : 2018-11-06 19:54

sl = [] 要擺到 for a in sys.stdin: 底下

這樣每次讀取一行之後才能確保陣列沒有上一次留下來的東西

import sys
t = int(input())
while t > 0:
    for a in sys.stdin:
        sl = []
        aa = a.split()
        for aaa in aa:
            sl.append(int(aaa))
        if sl[0]-sl[1] == sl[2]-sl[3]:
            sl.append(sl[3]-(sl[0]-sl[1]))
            print(sl[0],sl[1],sl[2],sl[3],sl[4])
        else:
            sl.append(sl[3]*int((sl[1]/sl[0])))
            print(sl[0],sl[1],sl[2],sl[3],sl[4])
        t = t - 1
 
ZeroJudge Forum