1. 程式人生 > >1009 Product of Polynomials (25 分)

1009 Product of Polynomials (25 分)

1009 Product of Polynomials (25 分)

程式碼:

#include <bits/stdc++.h>
using namespace std;
const int maxn=10000;
int main() {
	//陣列a,b用來接收指數和係數,
	//陣列c用來接收a和b相乘的指數和係數 
	double a[maxn], b[maxn], c[maxn];
	int k;
	memset(c,0,sizeof(double)*maxn);
	int expo ;
	double coef;
	cin >> k;
	int max1 = 0;
for (int i = 0; i < k; i++) { cin >> expo >> coef; if (max1 < expo) max1 = expo; a[expo] = coef; } int n; cin>>n; int max2 = 0; for (int i = 0; i < n; i++) { cin >> expo >> coef; if (max2 < expo) max2 = expo; b[expo] = coef; } int count =
0; for (int i = 0; i <= max1; i++) { if (a[i] == 0.0) continue; for (int j = 0; j <= max2; j++) { if (b[j] == 0.0) continue; c[i+j] += a[i] * b[j]; // printf("a[%d]=%.1f b[%d]=%.1f\n",i,a[i],j,b[j]); } } for (int i = 0; i < maxn; i++) { if (c[i] != 0.0) { count++; } } cout<<
count; for (int i = maxn-1; i >= 0; i--) { if (c[i] != 0.0) printf(" %d %.1f",i,c[i]); } return 0; }