【题意】
计算两个多项式乘积的系数
【思路】
直接模拟即可
【注意点】
乘积的最高次数可达到2000而不是1000
#include <iostream>
#include <cstring>
#include <cmath>
#include <stdio.h>
using namespace std;
#define ZERO 0.05
int main(){
float coeff[2][1001],coeff_res[2001];
int k,n;
memset(coeff,0,sizeof(coeff));
memset(coeff_res,0,sizeof(coeff_res));
for(int i=0; i<2; i++){
cin >> k;
while(k--){
cin >> n;
cin >> coeff[i][n];
}
}
int nonZeroCnt=0;
for(int i=0; i<=2000;i++){
int j;
j = (i<=1000)?0:i-1000;
for(; j<=i && j<=1000; j++){
coeff_res[i] += coeff[0][j]*coeff[1][i-j];
}
if(fabs(coeff_res[i])>=ZERO)
nonZeroCnt++;
}
cout << nonZeroCnt;
for(int i=2000; i>=0; i--){
if(fabs(coeff_res[i])>=ZERO)
printf(" %d %.1f", i, coeff_res[i]);
}
system("pause");
return 0;
}