浙江大学PAT上机题解析之3-04. 一元多项式的乘法与加法运算
来源:互联网 发布:2018年要上映的网络剧 编辑:程序博客网 时间:2024/06/06 03:59
设计函数分别求两个一元多项式的乘积与和。
输入格式说明:
输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式说明:
输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
样例输入与输出:
序号输入输出1
4 3 4 -5 2 6 1 -2 03 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 15 20 -4 4 -5 2 9 1 -2 0
22 1 2 1 02 1 2 -1 0
1 4 -1 02 2
32 -1000 1000 1000 02 1000 1000 -1000 0
-1000000 2000 2000000 1000 -1000000 00 0
401 999 1000
0 0999 1000
#include <iostream>#include <algorithm>#include <vector>using namespace std;typedef struct Term{int coe;//系数int exp;//指数}Term;bool compare(Term a,Term b){return a.exp>b.exp;}/*Term Mul(Term a,Term b){a.coe = a.coe*b.coe;a.exp = a.exp+b.exp;return a;}*//*Term Add(Term a,Term b){a.coe +=b.coe;return a;}*/void print(Term a){cout<<a.coe<<" "<<a.exp<<" ";}int main(){vector<Term> vec1;vector<Term> vec2;vector<Term> vec;vector<Term>::iterator it1,it2;int N1,N2;int coe,exp;bool flag = false;Term t;cin>>N1;while(N1--){cin>>coe>>exp;t.coe = coe;t.exp = exp;vec1.push_back(t);}//for_each(vec1.begin(),vec1.end(),print);//system("pause");cin>>N2;while(N2--){cin>>coe>>exp;t.coe = coe;t.exp = exp;vec2.push_back(t);}//for_each(vec2.begin(),vec2.end(),print);//system("pause");for (it1=vec1.begin();it1!=vec1.end();it1++)for (it2=vec2.begin();it2!=vec2.end();it2++){ t.coe = it1->coe * it2->coe;t.exp = it1->exp + it2->exp;if (t.coe!=0) vec.push_back(t);}sort(vec.begin(),vec.end(),compare);for (it1 = vec.begin();it1!=vec.end();it1=it2) { for (it2 = it1+1;it2!=vec.end() &&it1->exp==it2->exp;it2++) it1->coe += it2->coe;if (it1->coe!=0){if (flag)cout<<" ";elseflag = true;cout<<it1->coe<<" "<<it1->exp;} }if (vec1.size()==0){cout<<"0 0";}cout<<endl;flag = false;for (it1=vec1.begin(),it2=vec2.begin();it1!=vec1.end()&&it2!=vec2.end();){if (it1->exp >it2->exp){if (flag)cout<<" ";elseflag = true;cout<<it1->coe<<" "<<it1->exp;it1++;}else if (it1->exp < it2->exp){if (flag)cout<<" ";elseflag = true;cout<<it2->coe<<" "<<it2->exp;it2++;}else{if ((it1->coe+it2->coe)){if (flag)cout<<" ";elseflag = true;cout<<it1->coe+it2->coe<<" "<<it1->exp;}it1++;it2++;}}if (it1==vec1.end()){while(it2!=vec2.end()){if (flag)cout<<" ";elseflag = true;cout<<it2->coe<<" "<<it2->exp;it2++;}}if (it2==vec2.end()){while(it1!=vec1.end()){if (flag)cout<<" ";elseflag = true;cout<<it1->coe<<" "<<it1->exp;it1++;}}if (flag==false)cout<<"0 0";cout<<endl; //for_each(vec.begin(),vec.end(),print);//system("pause");return 0;}
//题目不难,注意细节即可
- 浙江大学PAT上机题解析之3-04. 一元多项式的乘法与加法运算
- 浙大PAT 3-04. 一元多项式的乘法与加法运算 (解题思路)
- pat--一元多项式的乘法与加法
- 一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算
- 一元多项式的加法与乘法运算
- 一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算
- 一元多项式的乘法与加法运算
- PAT 3-04 一元多项式的乘法与加法运算(C语言实现)
- 浙江大学PAT上机题解析之1010. 一元多项式求导 (25)
- PAT3-04. 一元多项式的乘法与加法运算
- PAT 一元多项式的乘法与加法运算(20)(模拟计算过程)
- PAT 一元多项式的乘法与加法运算(链表 c++版)
- 数据结构 PAT 02-线性结构1 一元多项式的乘法与加法运算
- MCFW与 codec engine区别
- css 文本两端对齐
- &无须插件!用WIN$Man安装win7更轻松&【xpghost】
- Windows平台下载Android源码
- 面向对象总结-03-----黑马程序员
- 浙江大学PAT上机题解析之3-04. 一元多项式的乘法与加法运算
- android开发播放声音文件
- 工资的安全感调查
- 搜索中最重要的是理解用户的意图,因此你不是在匹配词语,而是在匹配意思
- 【老鸟学算法】大整数乘法——算法思想及java实现
- &深入分析VMware虚拟机的三种组网模式&【xpghost】
- 安卓开发-ViewStub应用
- signal
- C++文件读写(打开方式等)