#25680: NA80%


lazychildrenqq@gmail.com (children lazy)

學校 : 不指定學校
編號 : 118769
來源 : [111.83.230.50]
最後登入時間 :
2021-09-25 14:45:19
a006. 一元二次方程式 | From: [218.32.96.32] | 發表日期 : 2021-06-11 18:56

最後一個測試系統顯示 我的答案是-4正確答案為-1

但是我自己測試 我的答案為-1,找不出哪裡錯誤,請求指教。

from sys import stdin

T = stdin.readline().strip()
a,b,c = map(int,T.split())

pro = b*b - 4*a*c
if pro == 0:
    ans = pro
 
first = 1
while first <= pro : #尋找b平方-4ac開根號的解(ans)
    if pro%first == 0:
        if first*first ==pro:
            ans = first
    first +=1


if ans != None:
    n1 = int((-b+ans)/2*a)
    n2 = int((-b-ans)/2*a)
    if n1>n2:
        print("Two different roots x1=%d , x2=%d"%(n1,n2))
    elif n1 == n2:
        print("Two same roots x=%d"%n1)    
else:
    print("No real root")
 
 
#25718: Re:NA80%


hsugoya@gmail.com (Мигает cf4?)

學校 : 國立臺北科技大學
編號 : 139476
來源 : [36.226.67.79]
最後登入時間 :
2024-05-31 00:15:30
a006. 一元二次方程式 | From: [36.224.231.219] | 發表日期 : 2021-06-16 16:23

不只這樣喔

你的程式也沒辦法找出無實根(No real root)的情況

因為如果pro計算出來是負的話(判別式<0),ans就不會被賦予值

然後在這一行if ans != None:的時候就會出錯 NameError: name 'ans' is not defined

 

 

 

 

 

 

 
ZeroJudge Forum