您的位置:首页 > 其它

pat1002A+B for Polynomials (25)

2015-10-02 12:09 363 查看
题意分析:

(1)输入两个多项式,每个多项式按照:项数 指数 系数 ...格式输入,按照此格式输出两个多项式的和

(2)项数和指数均为正整数,系数为小数,很自然联想到开辟一个浮点数的数组,下标用来表示指数,数组元素用来表示系数,用浮点数组来表示多项式,节省了额外空间

(3)当输入完第一个多项式后,第二个多项式的输入和加法操作依然可以在之前的浮点数组之上操作,进一步节省空间和时间

可能坑点:

(1)当同类项相加时,当第一个多项式对应项的系数为0时,此时结果项数+1

(2)同类项相加后系数为0时,结果项数-1

(3)除此之外,项数不变

#include <iostream>
#include <iomanip>
using namespace std;
double poly[1001]={0};
int main()
{
int num1,num2,exp;
double coeff;
int i=0,j=0,count;
cin>>num1;
count=num1;
while(i<num1)
{
cin>>exp>>coeff;
poly[exp]=coeff;
i++;
}
cin>>num2;
while(j<num2)
{
cin>>exp>>coeff;
if(poly[exp]==0)
{
poly[exp]=coeff;
count++;
}
else
{
poly[exp]+=coeff;
if(poly[exp]==0)count--;
}
j++;
}
cout<<count;
for(int j=1000;j>=0;j--)
{
if(poly[j]!=0)
{
cout<<" "<<j;
cout<<" "<<setiosflags(ios::fixed)<<setprecision(1)<<poly[j];
}
}
cout<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: