#15922: python請教


dean52000@gmail.com (Andy)


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)


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