(A005) 一元二次方根 : 從命令視窗輸入一元二次方程式(AX^2+BX+C=0)的三個係數, 若該一元二次方程式有解,請印其兩個解,若無解則印"None"。請使用double做為係數 及解的型態。解公式為 (-B+sqrt(D))/(2A) 和 (-B-sqrt(D))/(2A)#coding=utf8
import math
#程式集訓 A005:一元二次方根
'''
(A005) 一元二次方根 : 從命令視窗輸入一元二次方程式(AX^2+BX+C=0)的三個係數,
若該一元二次方程式有解,請印其兩個解,若無解則印"None"。請使用double做為係數
及解的型態。解公式為 (-B+sqrt(D))/(2A) 和 (-B-sqrt(D))/(2A)
'''
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
print(" (A005) 一元二次方根")
print("==================")
print("AX^2+BX+C=0: A B C?")
#==========================
n=1
while n!=0:
a=input("輸入 A=")
if (is_number(a) != True) :
print ('這是不合法的輸入. 請再輸入一次...')
n=1
else:
A=float(a)
n=0
#==========================
n=1
while n!=0:
a=input("輸入 B=")
if (is_number(a) != True) :
n=1
print ('這是不合法的輸入. 請再輸入一次...')
else:
B=float(a)
n=0
#==========================
n=1
while n!=0:
a=input("輸入 C=")
if (is_number(a) != True) :
n=1
print ('這是不合法的輸入. 請再輸入一次...')
else:
C=float(a)
n=0
#==========================
if ( (B*B-4*A*C) >= 0 ) :
x1 = ( -B + math.sqrt(B*B-4*A*C) ) / ( 2*A )
x2 = ( -B - math.sqrt(B*B-4*A*C) ) / ( 2*A )
print("X1=",'{:6.2f}'.format(x1)," , X2=",'{:6.2f}'.format(x2))
else:
print("無實根")
>>>
================== RESTART: D:/程式語言 Python 入門/程式集訓/A005.py ==================
(A005) 一元二次方根
==================
AX^2+BX+C=0: A B C?
輸入 A=1
輸入 B=-6
輸入 C=8
X1= 4.00 , X2= 2.00
>>>
================== RESTART: D:/程式語言 Python 入門/程式集訓/A005.py ==================
(A005) 一元二次方根
==================
AX^2+BX+C=0: A B C?
輸入 A=1
輸入 B=-5
輸入 C=-14
X1= 7.00 , X2= -2.00
>>>
沒有留言:
張貼留言