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 }