编写一个程序实现两个一元多项式相加的运算。
时间: 2023-04-29 20:00:40 浏览: 156
可以使用数组来存储多项式的系数和指数,然后按照指数从高到低的顺序相加同类项,最后输出结果即可。具体实现可以参考以下伪代码:
1. 定义两个一元多项式的数组 poly1 和 poly2,以及一个结果数组 result。
2. 读入 poly1 和 poly2 的系数和指数。
3. 初始化 result 数组的所有元素为 0。
4. 依次遍历 poly1 和 poly2 的每一项:
- 如果两项的指数相同,将它们的系数相加并存入 result 对应项的系数中。
- 如果两项的指数不同,将指数较大的项存入 result 对应项的系数中。
5. 输出 result 数组的系数和指数。
具体实现可以参考以下 Python 代码:
```
# 定义两个一元多项式的数组
poly1 = []
poly2 = []
# 读入 poly1 和 poly2 的系数和指数
n1 = int(input("请输入 poly1 的项数:"))
for i in range(n1):
coef, exp = map(int, input("请输入 poly1 的第 %d 项的系数和指数:" % (i+1)).split())
poly1.append((coef, exp))
n2 = int(input("请输入 poly2 的项数:"))
for i in range(n2):
coef, exp = map(int, input("请输入 poly2 的第 %d 项的系数和指数:" % (i+1)).split())
poly2.append((coef, exp))
# 初始化结果数组
result = [(0, i) for i in range(max(poly1[-1][1], poly2[-1][1])+1)]
# 相加同类项
i = j = 0
while i < n1 and j < n2:
coef1, exp1 = poly1[i]
coef2, exp2 = poly2[j]
if exp1 == exp2:
result[exp1] = (coef1 + coef2, exp1)
i += 1
j += 1
elif exp1 > exp2:
result[exp1] = (coef1, exp1)
i += 1
else:
result[exp2] = (coef2, exp2)
j += 1
while i < n1:
coef, exp = poly1[i]
result[exp] = (coef, exp)
i += 1
while j < n2:
coef, exp = poly2[j]
result[exp] = (coef, exp)
j += 1
# 输出结果
print("相加后的多项式为:")
for coef, exp in result[::-1]:
if coef != 0:
print("%dx^%d" % (coef, exp), end=" + ")
print("\b\b ") # 去掉最后一个加号和空格
```
示例输入:
```
请输入 poly1 的项数:3
请输入 poly1 的第 1 项的系数和指数:2 3
请输入 poly1 的第 2 项的系数和指数:-3 2
请输入 poly1 的第 3 项的系数和指数:1 0
请输入 poly2 的项数:4
请输入 poly2 的第 1 项的系数和指数:-1 4
请输入 poly2 的第 2 项的系数和指数:2 3
请输入 poly2 的第 3 项的系数和指数:3 2
请输入 poly2 的第 4 项的系数和指数:-2 1
```
示例输出:
```
相加后的多项式为:
-1x^4 + 4x^3 - 3x^2 + x^0
```
阅读全文