您的位置:首页 > 其它

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

2018-03-17 16: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>
#define N 10000
using namespace std;
int a
;      //存放第一个单项式
int b
;      //存放第二个单项式
int c
;      //存放乘的结果
int d
;      //存放加的结果
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";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: