a006: 一元二次方程式
#a006: 一元二次方程式
'''
求一元二次方程式 ax2+bx+c=0 的根
輸入說明
每組輸入共一行,內含三個整數 a, b, c 以空白隔開。
輸出說明
Two different roots x1=?? , x2=??
Two same roots x=??
No real root
PS: 答案均為整數,若有兩個根則大者在前
範例輸入 #1
1 3 -10
範例輸出 #1
Two different roots x1=2 , x2=-5
'''
import math
a,b,c = map(int,input('輸入3個整數,分別為ax^2+bx+c的a,b,c,用空白分開 --->').split())
x=int (b*b-4*a*c)
if x>0 :
y=math.sqrt(b*b-4*a*c)
z=((-b+y)/(2*a))
h=((-b-y)/(2*a))
print ('Two different roots x1= %.1f x2= %.1f' %(z,h))
elif (x==0):
y=math.sqrt(b*b-4*a*c);
z=((-b+y)/(2*a));
print('Two same roots x=%.1f' %(z))
else:
print("No real root")
'''
int x=b*b-4*a*c;
if(x>0){
int y=sqrt(b*b-4*a*c);
int z=((-b+y)/(2*a));
int h=((-b-y)/(2*a));
cout<<"Two different roots"<<" x1="<<z<<" , "<<"x2="<<h<<endl;
}
else if(x==0){
int y=sqrt(b*b-4*a*c);
int z=((-b+y)/(2*a));
cout<<"Two same roots"<<" x="<<z<<endl;
}
else {
cout<<"No real root"<<endl;
'''
>>> %Run a006.py
輸入3個整數,分別為ax^2+bx+c的a,b,c,用空白分開 --->1 3 -10
Two different roots x1= 2.0 x2= -5.0
>>> %Run a006.py
輸入3個整數,分別為ax^2+bx+c的a,b,c,用空白分開 --->1 1 1
No real root
>>> %Run a006.py
輸入3個整數,分別為ax^2+bx+c的a,b,c,用空白分開 --->2 0 0
Two same roots x=0.0
沒有留言:
張貼留言