C++如何写一个十字相乘法的代码
用c++如何写一个十字相乘法解一元二次方程呢? #一元二次方程标准形式:ax*x+bx+c=0def showFac(num):
'''分解出两个因数,返回这两个因数组成的列表
但是这个只能得到最大公因数和另外一个因数,还需要完善才能应用
'''
count=num//2
while count>1:
if num%count==0:
return
break
count-=1
else:
return
a = int(input('请输入整数a:'))
b = int(input('请输入整数b:'))
c = int(input('请输入整数c:'))
#把a和c分别分解出两个因数保存到两个列表ar和cr
ar = showFac(a)
cr = showFac(c)
#判断上一步凑出的因数是否可以能用来做十字相乘
if ar*cr+ar*cr==b:
#模拟十字相乘法过程
#按照十字相乘法写出来(ar*x+cr)+(ar*x+cr)=0
#得到x1,x2并转为string类型
#注意用自然除
x1 = str(-cr/ar)
x2 = str(-cr/ar)
#把x1,x2小数点左边和右边分别切出来
(x1_point_left, x1_point_right) = x1.split('.',1)
(x2_point_left, x2_point_right) = x2.split('.',1)
#看小数点右边不为零即无法整除的情况
if x1_point_right != '0':
#为了精确就输出分数形式
print('x=',-cr,'/',ar)
else:
#可以整除,直接输出x1
print('x=',x1)
if x2_point_right != '0':
print('x=',-cr,'/',ar)
else:
print('x=',x2)
else:
print('对不起无法解答')
我用的python写的,没学过c语言,这个只能解一部分一元二次方程,因为分解因数的那个函数不能凑出多种因数 鱼油127327 发表于 2018-2-14 13:04
我用的python写的,没学过c语言,这个只能解一部分一元二次方程,因为分解因数的那个函数不能凑出多种因 ...
谢谢了,这个代码确实是没法推广,只能部分情况用
页:
[1]