1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > PTA 一元多项式的乘法与加法运算 设计函数分别求两个一元多项式的乘积与和。

PTA 一元多项式的乘法与加法运算 设计函数分别求两个一元多项式的乘积与和。

时间:2024-04-14 18:14:56

相关推荐

PTA  一元多项式的乘法与加法运算   设计函数分别求两个一元多项式的乘积与和。

设计函数分别求两个一元多项式的乘积与和。

输入格式:

输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0

输入样例:

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

解析:用数组下标表示多项式的指数,数组中的数值为它的系数。

#include<iostream>#define N 10000using namespace std;int a[N];//存放第一个单项式 int b[N];//存放第二个单项式 int c[N];//存放乘的结果 int d[N];//存放加的结果 int main(){int len1,len2,t1,t2;cin>>len1;for(int i=0;i<len1;i++){cin>>t1>>t2;a[t2]+=t1;}cin>>len2;for(int i=0;i<len2;i++){cin>>t1>>t2;b[t2]+=t1;}for(int i=N-1;i>=0;i--)if(a[i]){for(int j=N-1;j>=0;j--)if(b[j]){c[i+j]+=a[i]*b[j];}}int count=0;for(int i=N-1;i>=0;i--){if(c[i]){if(count)cout<<" ";if(c[i])cout<<c[i]<<" "<<i;count++;}}if(!count)cout<<"0 0";cout<<endl;count=0;for(int i=N-1;i>=0;i--){if(a[i])d[i]+=a[i];if(b[i])d[i]+=b[i];}for(int i=N-1;i>=0;i--){if(d[i]){if(count)cout<<" ";cout<<d[i]<<" "<<i;count++;}}if(!count)cout<<"0 0";}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。