PAT甲级1002

PAT甲级1002

题目简介

多项式加法,第一个数是项数,后面每一对前面是指数后面是系数,一共两行,两个对象是相加并输出

解题思想

PS:这个必须要记下来,能爆破就爆破,有空间就不要节省,这道题做的太糟心了,大家都用1000个空间(可以多一点,防止溢出),我非要10个的,太害人了
因为指数有上限1000,所以开一个1000的数组就够了,下标拿来记指数,数据拿来记系数,然后两次输入叠加就够了

下面附上代码(PS:这个代码有点小问题,为什么不能节省一次计算总数的遍历,直接放在输入中,另外有时间希望可以找人问一下用10数组的怎么做)

#include<iostream>
#include<iomanip>
using namespace std;
double map[1005];
int main(){
	int number,midi,count=0;
	double midj;
	for(int i=1001;i>=0;i--){
		map[i]=0;
	}
	cin >> number;
	for(int i=0;i<number;i++){
		cin >> midi >> midj;
		map[midi]+=midj;
	}
	cin >> number;
	for(int i=0;i<number;i++){
		cin >> midi >> midj;
		map[midi]+=midj;
	}
	for(int i=0;i<1001;i++){
		if(map[i]!=0){
			count++;
		}
	}
	cout << count;
	for(int i=1001;i>=0;i--){
		if(map[i]!=0){
			cout << " " << i << " " << setiosflags(ios::fixed)<<setprecision(1)<<map[i];
		}
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值