题目链接->link
题意描述
计算多项式A+B的结果。
思路
- 分别用a[e]=t,b[e]=t存储多项式A、B指数为e的系数t。
- 比较出A,B指数最大的值。
- 累计A,B中不为0的项数。
- 注意输出格式即可。
代码
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>
using namespace std;
int main(){
double a[1005]={0},b[1005]={0},sum[1005]={0},t;
int A,B,i,e,maxa=0,maxb=0;//e指数,t系数
scanf("%d",&A);
while(A--){
scanf("%d%lf",&e,&t);
if(e>maxa)maxa=e;
a[e]=t;
}
scanf("%d",&B);
while(B--){
scanf("%d%lf",&e,&t);
if(e>maxb)maxb=e;
b[e]=t;
}
int max;
max=maxa>=maxb?maxa:maxb;//求得指数最大的项
int count=0;
for(i=max;i>=0;i--){
sum[i]=a[i]+b[i];
if(sum[i]!=0)count++;//统计系数不为0的项数
}
printf("%d",count);
for(i=max;i>=0;i--){
if(sum[i]!=0)printf(" %d %.1f",i,sum[i]);
}
printf("\n");
return 0;
}