一、题目
二、注意
- 不同项指数和系数可用数组来表示。指数同,系数相加,故指数为数组下标,系数为元素值
- 特殊的格式输出的时候使用printf来输出
小数点后保留两位输出
printf("%.2f",a);
- 单词
- Polynomials:多项式
- the number of nonzero terms in the polynomial: 多项式中非零项的数量
- exponents and coefficients:指数和系数
三、思路代码
#include <iostream>
using namespace std;
int main()
{
//N(指数) a(系数)
//运算规则,指数同,系数相加
float num[1001] = { 0 }; //定义i在0到1000之间,即为指数N
int K1,K2,N; //项数和指数
float a; //系数
//处理第一项
cin >>K1; //输入K1
for(int i=0; i<K1; i++) //将输入的每一个数存入num数组中,指数为数组下标,系数为数组元素值
{
cin >>N;
cin >>a;
num[N] = a; //赋值
}
//处理第二项
cin>>K2; //输入K2
for(int k=0;k<K2;k++)
{
cin >>N;
cin >>a;
num[N] += a;// 非相同项,直接赋值
}
int K = 0;
//求最终项数
for(int i=0;i<1001;i++)
{
if(num[i]!=0)
{
K++;
}
}
cout <<K; //输出最终项数
for(int i=1000;i>=0;i--) //找到非零项,按照指数大小,从大往小打印输出
{
if(num[i]!=0.0)
{
printf(" %d %.1f",i,num[i]);
}
}
return 0;
}