题意
按照格式输出两个多项式相乘的积
思路
用两个数组存两个式子,数组下标为次数,二重循环遍历两个数组ans[i+j]+=seq1[i]+seq2[j]
特别注意这里是+=
不是=
,可能会有多项相乘后指数相同
AC代码
#include <iostream>
using namespace std;
double seq1[1005],seq2[1005],ans[2005];
int main(){
int n,m;
int exp;
double coe;
int cnt=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d %lf",&exp,&coe);
seq1[exp]=coe;
}
scanf("%d",&m);
for(int i=0;i<m;i++){
scanf("%d %lf",&exp,&coe);
seq2[exp]=coe;
}
for(int i=0;i<=1000;i++){
if(seq1[i]==0) continue;
for(int j=0;j<=1000;j++){
if(seq2[j]==0) continue;
ans[i+j]+=seq1[i]*seq2[j];
}
}
for(int i=0;i<=2000;i++){
if(ans[i]!=0) cnt++;
}
printf("%d",cnt);
for(int i=2000;i>=0;i--){
if(ans[i]!=0)
printf(" %d %.1lf",i,ans[i]);
}
return 0;
}