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 }