5-2 一元多项式的乘法与加法运算 (20分)
2017-01-22 19:29
260 查看
设计函数分别求两个一元多项式的乘积与和。
输入格式:
输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:
输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。
输入样例:
4 3 4 -5 2 6 1 -2 0 3 5 20 -7 4 3 1
输出样例:
15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0
主要使用顺序表进行存储
#include<iostream> #include<algorithm> #include<vector> using namespace std; struct dxs{ int xi; int zhi; }; dxs c; vector<dxs> d1; //多项式1 vector<dxs> d2; //多项式2 vector<dxs> d; vector<dxs> ::iterator p1,p2; int cmp(dxs x,dxs y){ return x.zhi>y.zhi; } void mul(){ //乘 bool flag=0; for(p1=d1.begin();p1!=d1.end();p1++){ for(p2=d2.begin();p2!=d2.end();p2++){ c.xi=p1->xi * p2->xi; c.zhi=p1->zhi + p2->zhi; d.push_back(c); } } sort(d.begin(),d.end(),cmp); for(p1=d.begin();p1!=d.end();p1=p2){ for(p2=p1+1;p2!=d.end()&&p1->zhi==p2->zhi;p2++){ p1->xi = p1->xi + p2->xi; } if(p1->xi!=0){ if(flag) cout<<" "; else flag = true; cout<<p1->xi<<" "<<p1->zhi; } } if(d.size()==0) cout<<"0 0"; cout<<endl; } void add(){ //加 d.clear(); bool flag=0; for(p1=d1.begin(),p2=d2.begin();p1!=d1.end()&&p2!=d2.end();){ if(p1->zhi>p2->zhi){ if(flag) cout<<" "; else flag = true; cout<<p1->xi<<" "<<p1->zhi; p1++; } else if(p1->zhi<p2->zhi){ if(flag) cout<<" "; else flag = true; cout<<p2->xi<<" "<<p2->zhi; p2++; } else { if(p1->xi+p2->xi){ if(flag) cout<<" "; else flag = true; cout<<p1->xi+p2->xi<<" "<<p1->zhi; } p1++; p2++; } } if(p1!=d1.end()){ if(flag) cout<<" "; else flag = true; cout<<p1->xi<<" "<<p1->zhi; p1++; } if(p2!=d2.end()){ if(flag) cout<<" "; else flag = true; cout<<p2->xi<<" "<<p2->zhi; p2++; } if(!flag) cout<<"0 0"; cout<<endl; } int main(){ int m,n; int x,z; int i,j,k; cin>>m; for(i=0;i<m;i++){ cin>>x>>z; c.xi=x; c.zhi=z; d1.push_back(c); } cin>>n; for(i=0;i<n;i++){ cin>>x>>z; c.xi=x; c.zhi=z; d2.push_back(c); } mul(); add(); }
相关文章推荐
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构1 一元多项式的乘法与加法运算 (20分)
- 5-2 一元多项式的乘法与加法运算 (20分)
- 5-2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 5-2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 5-2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 5-1 一元多项式的乘法与加法运算 (20分)
- 5-2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- PAT数据结构_02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 02-线性结构2 一元多项式的乘法与加法运算(20 分)(CPP)