A1009

两个多项式的乘积

两个数组,一个放多项式1,一个放结果

注意:arr2[j+exp]+=arr1[j]*coe; 因为有指数相加相同的情况下需要合并系数

 1 #include<cstdio>
 2 int main(){
 3     double arr1[1001]={0.0},arr2[2001]={0.0},coe;
 4     int exp,count=0,n,m;
 5     scanf("%d", &n);
 6     for(int i=0;i<n;i++){
 7         scanf("%d%lf",&exp,&coe);
 8         arr1[exp]=coe;
 9     }
10     scanf("%d", &m);
11     for(int i=0;i<m;i++){
12         scanf("%d%lf", &exp,&coe);
13         for(int j=0;j<=1000;j++)
14             arr2[j+exp]+=arr1[j]*coe;//加出来指数相同的系数要相加            
15 }
16     for(int i=0;i<=2000;i++){
17         if(arr2[i]!=0.0)
18         count++;
19     }
20     printf("%d",count);
21     for(int i=2000;i>=0;i--){
22         if(arr2[i]!=0.0) printf(" %d %.1lf",i,arr2[i]);
23     }
24     return 0;
25 }
原文地址:https://www.cnblogs.com/Lynn-2019/p/12075088.html