A1002

多项式相加,按非零项个数,指数,系数输入两个n项多项式,合并同类项之后输出。

用数组编号保存指数,编号对应的数组值保存系数,相加之后用count记录非零项的个数,最后输出。

数组最大1000个,如果有10000个呢?是否能用链表做?

 1 #include<cstdio>
 2 int main(){
 3     double sum[1001]={0.0};
 4     int n,m,exp,count=0;
 5     double coe;
 6     scanf("%d",&n);
 7     for(int i=0;i<n;i++){
 8         scanf("%d%lf", &exp,&coe);
 9         sum[exp]=coe;
10     }
11     scanf("%d",&m);
12     for(int i=0;i<m;i++){
13         scanf("%d%lf", &exp,&coe);
14         sum[exp]+=coe;
15     }
16     for(int i=0;i<1001;i++){
17         if(sum[i]!=0) count++;
18     }
19     printf("%d",count);
20     for(int i=1000;i>=0;i--){
21         if(sum[i]!=0){
22             //if(i!=0)
23             printf(" %d %.1lf",i,sum[i]);
24         }
25     }
26     return 0;
27 }
原文地址:https://www.cnblogs.com/Lynn-2019/p/12074864.html