#include<stdio.h> #include<stdlib.h> #include<string.h> //【warning】double 输入%lf,输出%f struct arr { int exp; //指数 double cof; //系数 }arr[1005]; double ans[2010]; //下标是指数,内容是系数 int main() { memset(arr,0,sizeof(arr)); memset(ans,0,sizeof(ans)); int n,m; scanf("%d",&n); //第一个多项式n项 for(int i=0 ; i<n ; ++i) { scanf("%d %lf",&arr[i].exp,&arr[i].cof); } scanf("%d",&m); for(int i=0 ; i<m ; ++i) { int exp; //第二个多项式指数 double cof; //第二个多项式系数 scanf("%d %lf",&exp,&cof); for(int j=0 ; j<n ; ++j) { ans[exp+arr[j].exp]+=cof*arr[j].cof; //指数相加,系数相乘,存入相应指数的系数数组中 } } int num=0; for(int i=0 ; i<2010 ; ++i) //统计项数 if(ans[i]!=0) ++num; printf("%d",num); for(int i=2009 ; i>=0 ; --i) //【warning】ans数组2010个元素,下标最多到2009 { if(ans[i]!=0) { printf(" %d %.1f",i,ans[i]); } } //system("pause"); return 0; }
时间: 2024-10-25 06:32:08