PAT 甲級 1009 Product of Polynomials (25分)

這道題大意就是多項式乘法,按照正常思維逐項相乘就好了,要注意的結果的指數可能大於2000,結果數組開大點,這道題應該就沒什麼問題了。

#include<bits/stdc++.h>
using namespace std;
main()
{
	double a[1005] = {0};
	double b[1005] = {0};
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		int exp;
		double co;
		scanf("%d %lf",&exp,&co);
		a[exp] = co;
	}
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		int exp;
		double co;
		scanf("%d %lf",&exp,&co);
		b[exp] = co;
	}
	double res[2005] = {0};
	for(int i=0;i<1005;i++)
		{
			for(int j=0;j<1005;j++)
			{
				res[i+j] += b[j] * a[i];
			}
		}
	int cnt=0;
	for(int i=0;i<2005;i++)
	if(res[i]!=0)
	cnt++;
	printf("%d",cnt);
	for(int i=2000;i>0;i--)
	if(res[i]!=0)
	printf(" %d %.1lf",i,res[i]);
 } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章