编写一元稀疏多项式计算器
时间: 2023-08-13 07:03:58 浏览: 90
基于Java实现的一元稀疏多项式计算器.zip
5星 · 资源好评率100%
好的,下面是一元稀疏多项式计算器的代码:
```
#include <iostream>
#include <map>
using namespace std;
int main(){
map<int, int> poly1, poly2, res;
int n1, n2, e, c;
// 输入第一个多项式
cout << "输入第一个多项式的项数:";
cin >> n1;
cout << "输入第一个多项式的每一项系数和指数:";
for(int i = 0; i < n1; i++){
cin >> c >> e;
poly1[e] = c;
}
// 输入第二个多项式
cout << "输入第二个多项式的项数:";
cin >> n2;
cout << "输入第二个多项式的每一项系数和指数:";
for(int i = 0; i < n2; i++){
cin >> c >> e;
poly2[e] = c;
}
// 计算结果
for(auto iter1 = poly1.begin(); iter1 != poly1.end(); iter1++){
int e1 = iter1->first, c1 = iter1->second;
for(auto iter2 = poly2.begin(); iter2 != poly2.end(); iter2++){
int e2 = iter2->first, c2 = iter2->second;
res[e1+e2] += c1*c2;
}
}
// 输出结果
cout << "结果多项式的每一项系数和指数为:";
for(auto iter = res.rbegin(); iter != res.rend(); iter++){
int e = iter->first, c = iter->second;
if(c != 0) cout << c << "x^" << e << " ";
}
cout << endl;
return 0;
}
```
这个计算器可以输入两个一元稀疏多项式,并计算它们的乘积。其中,使用 `map` 来存储每个多项式的项,键为指数,值为系数。计算过程中,遍历两个多项式的每一项,将指数相加的项的系数相乘,然后存入结果多项式的对应项中。最后,输出结果多项式的每一项系数和指数。
值得注意的是,这个计算器的实现还有很多可以优化的地方,比如可以加入错误处理、化简等功能。
阅读全文