#14922: Python 第8項目OLE 求解


reina42689 (職業岩龍騎手)

學校 : 國立澎湖科技大學
編號 : 77774
來源 : [1.175.55.76]
最後登入時間 :
2022-04-05 18:21:28
a410. 解方程 -- TYVJ | From: [114.45.63.34] | 發表日期 : 2018-08-15 10:12

只獲得這個錯誤,其他測資都AC了,求解

 

#8: 10% OLE ()

請勿輸出題目未要求的文字: 
No answer

程式碼
import sys

for s in sys.stdin:
    try:
        a1, b1, c1, a2, b2, c2 = s.split()
        delta = int(a1) * int(b2) - int(a2) * int(b1)
        delta_x = int(c1) * int(b2) - int(b1) * int(c2)
        delta_y = int(a1) * int(c2) - int(c1) * int(a2)
        
        if delta == delta_x == delta_y:
            print("Too many")
        elif delta != "0":
            x = round(int(delta_x) / int(delta) , 2)
            y = round(int(delta_y) / int(delta) , 2)
            if (x * 100) % 100 != 0 or (y * 100) % 100 != 0:
                print("x=" + str(x) + "\ny=" + str(y))
            else:
                print("x=" + str(x) +"0\ny=" + str(y) + "0")
    except:
        print("No answer")
        break


 
#14923: Re:Python 第8項目OLE 求解


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [122.117.95.179]
最後登入時間 :
2024-11-04 20:21:51
a410. 解方程 -- TYVJ | From: [61.223.42.87] | 發表日期 : 2018-08-15 10:21

 

你在 try 上面加一行  if s.strip() == '' : break

看結果如何。

 
#14924: Re:Python 第8項目OLE 求解


reina42689 (職業岩龍騎手)

學校 : 國立澎湖科技大學
編號 : 77774
來源 : [1.175.55.76]
最後登入時間 :
2022-04-05 18:21:28
a410. 解方程 -- TYVJ | From: [114.45.63.34] | 發表日期 : 2018-08-15 10:28

 

你在 try 上面加一行  if s.strip() == '' : break

看結果如何。



解決了,謝謝你

網路上查閱後得知:strip() 用於刪除頭尾指定字符,想必是我的程式輸出時也連帶輸出了空格

 
#14926: Re:Python 第8項目OLE 求解


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [122.117.95.179]
最後登入時間 :
2024-11-04 20:21:51
a410. 解方程 -- TYVJ | From: [61.223.42.87] | 發表日期 : 2018-08-15 11:30

這題只有一行測資
你用  for s in sys.stdin
如果 input 多了一個空白行
用 split 會出錯
剛好會執行你的 except 那一段
才會多一行輸出



 
#21914: Re:Python 第8項目OLE 求解


10811124@stu.cmsh.khc.edu.tw (立峰陳)

學校 : 國立旗美高級中學
編號 : 108792
來源 : [27.240.168.65]
最後登入時間 :
2023-03-17 00:06:48
a410. 解方程 -- TYVJ | From: [1.173.243.148] | 發表日期 : 2020-07-30 14:44

這題只有一行測資
你用  for s in sys.stdin
如果 input 多了一個空白行
用 split 會出錯
剛好會執行你的 except 那一段
才會多一行輸出



 

while True:
    try:
        a=input().split(' ')
        a=[float(i) for i in a]
        p=a[0]*a[4]-a[1]*a[3]
        px=a[2]*a[4]-a[1]*a[5]
        py=a[0]*a[5]-a[2]*a[3]
        if p!=float(0):
            ansx=round(p/px,2)
            ansy=round(p/py,2)
            if ansx*100%100==0:
                ansx=str(ansx)+'0'
            if ansy*100%100==0:
                ansy=str(ansy)+'0'
            print('x='+ansx)
            print('y='+ansy)
        elif p==float(0) and px==float(0) and py==float(0): 
            print('Too many')
        else:
            print('No answer')
    except:
        break
請問我錯在哪裡???
 
ZeroJudge Forum