A1002.A+B for Polynomials

题意:

模拟两个多项式相加的过程

思路

  • 用P[maxn]表示每一个指数项的系数,默认为0,p[1]表示指数为1的项的系数值,p[4]表示指数为4的项的系数值
  • 边输入边处理,每次输入一对指数e,系数c,则对应p[e] += c;
  • 连续输入两个多项式
  • 最后枚举指数0到maxn,如果对应指数的系数不等于0,则count++,count代表相加后的多项式项数。
  • 按题目要求输出,注意当count = 0时,count后面不能有空格。

参考代码

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1010;
double p[maxn];		//p[i]代表指数为i的项的系数值,默认为0 

int main(void){
	int k;
	cin>>k;
	int e;double coef;
	for(int i = 0;i < k;i++) 
	{
		cin>>e>>coef;
		p[e] += coef;
	}	
	cin>>k;
	for(int i = 0;i < k;i++) {
		cin>>e>>coef;
		p[e] += coef;
	}

	int count = 0;			//记录非0系数项 
	for(int i = 0;i < maxn;i++) {
		if(p[i] != 0) count++;
	}
	
	printf("%d",count);
	for(int i = maxn-1;i >= 0;i--) {
		if(p[i] != 0) 
			printf(" %d %.1lf",i,p[i]);
	}
	return 0;
}
posted @ 2019-01-24 14:27  Western_Trail  阅读(143)  评论(0编辑  收藏  举报