思路
从算法笔记上学到的:
先获得第一个多项式的系数与幂次方,然后在输入第二个系数的循环时,与第一个多项式的系数相乘,并将结果相加。
AC代码:
#include<iostream>
using namespace std;
int main()
{
int m,n,a,cnt=0;
scanf("%d",&m);
double b,arr[1001]={0.0},ans[2001]={0.0};
for(int i=0;i<m;i++){
scanf("%d %lf",&a,&b);
arr[a]=b;
}
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d %lf",&a,&b);
for(int j=0;j<1001;j++) {
ans[j+a]+=arr[j]*b;
}
}
for(int i=2000;i>=0;i--) {
if(ans[i]!=0.0) cnt++;
}
printf("%d",cnt);
for(int i=2000;i>=0;i--){
if(ans[i]!=0.0) printf(" %d %.1f",i,ans[i]);
}
return 0;
}