【PAT】A1009

//思路:
//先獲得第一個多項式的係數,然後在輸入第二個係數時循環與第一個多項式的係數相乘,並將結果加到對應指數的係數上
//最後得到要輸出的所有非零係數的項 
//沒必要開兩個數組 
#include <cstdio>
struct Poly{
	int exp;//指數
	double cof;//係數 
}poly[1001];
double ans[2001];
int main(){
	int n,m,number = 0;
	scanf("%d",&n);
	for (int i = 0; i < n; i ++){
		scanf("%d%lf",&poly[i].exp,&poly[i].cof);
	}
	scanf("%d",&m);
	for (int i = 0; i < m; i ++){
		int e;
		double c;
		scanf("%d%lf",&e,&c);
		for (int j = 0; j < n; j ++){
			ans[e + poly[j].exp] += c * poly[j].cof;
		}
	}
	for (int i = 0; i <= 2000; i ++){
		if (ans[i] != 0) number ++;
	}
	printf("%d",number);
	for (int i = 2000; i >= 0; i --){
		if (ans[i] != 0.0) printf(" %d %.1lf",i,ans[i]);
	}
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章