Product of Polynomials
这是一道多项式相乘的题目
解答:
#include<iostream>
using namespace std;
int main() {
int n1, n2, a;
double b;
double ans[1001] = { 0.0 }, bns[2001] = { 0.0 };
scanf("%d",&n1);
for (int i = 0; i < n1; i++) {
scanf("%d %lf",&a,&b);
ans[a]=b;
}
scanf("%d",&n2);
for (int i = 0; i < n2; i++) {
scanf("%d %lf",&a,&b);
for (int j = 0; j < 1001; j++)
bns[j + a] = bns[j + a] + ans[j] * b;
}
int cnt = 0;
for (int i = 0; i < 2001; i++)
if (bns[i] != 0.0) cnt++;
cout << cnt;
for (int i = 2000; i >= 0; i--)
if (bns[i] != 0.0) printf(" %d %.1f", i, bns[i]);
return 0;
}
多项式问题总结:
1.读入时:对系数的读入要用double或者float的变量,及定义double类型的数组来保存数据。
2.读入时,可以值保存第一个多项式的数据,后面的都只用临时变量保存,直接对第一个多形式遍历并执行相关操作
3.bns要开到2000,只开到1000过不了3,4,5测试点