1009 Product of Polynomials (25 分)
今天给大家分享的是PAT的一道小题,多项式乘法
简单翻译:
输出两个多项式,输出这两个多项式相乘的结果。
思路:
多项式相乘,就是系数相乘,指数相加即可,这个问题给的范围很小,直接暴力遍历求解即可,没有什么坑
C++代码:
#include"bits/stdc++.h"
#define all(x) x.begin(),x.end()
#define len(x) x.size()
#define INF (1e9)
#define vi vector<int>
#define ll long long
#define db double
#define vvi vector<vector<int>>
#define pb(x) push_back(x);
#define MAXN 100
using namespace std;
int main() {
double a[1001] = {0};
double b[1001] = {0};
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int temp1;
cin >> temp1;
cin >> a[temp1];
}
cin >> n;
for (int i = 0; i < n; i++) {
int temp1;
cin >> temp1;
cin >> b[temp1];
}
double c[2002] = {0};
int cnt = 0;
for (int i = 0; i < 1001; i++) {
for (int j = 0; j < 1001; j++) {
if (a[i] != 0 && b[j] != 0) {
if (c[i + j] == 0) cnt++;
c[i + j] += a[i] * b[j];
if (c[i + j] == 0) cnt--;
}
}
}
cout << cnt;
for (int i = 2001; i >= 0; i--) {
if (c[i] != 0) {
printf(" %d %.1lf", i, c[i]);
}
}
return 0;
}