1068: 多项式相加

数据结构多项式相加

题目描述

一条单链表可以表示一个一元多项式,每个节点包含三个域:指数、系数和后继节点(指针或引用)。表示多项式3X4-6X2+5X-10的单链表如图所示。给定两个多项式,实现两个多项式相加算法。
在这里插入图片描述

输入格式

第一行输入包含两个整数m,n
后续为m行和n行数据
m,n分别代表两个多项式的项数
后续每一行代表多项式的项,包含a,b两个数据,表示该项的系数和指数。

输出格式

从较高指数到较低指数,依次输出求得的和。
每行一项,格式与输入相同,但无需输出项数,系数为0的项也不输出。

输入样例

2 3
1 2
1 1
2 2
1 1
2 0

输出样例

3 2
2 1
2 0

解题思路

一,数据初始化
二,用数据次数作为下标,系数进行存储
三,挨个相加,不为0的输出

示例代码

#include<iostream>
#include<math.h>
#include<string.h>
#include<algorithm>
#define N 20
using namespace std;

struct node {
	int a[20];
};

int main() {
	int i,n, m;
	int number1, number2;
	node pr, pe, pt;
	cin >> n >> m;
	for (int i = 0; i < N; i++) {
		pr.a[i] = 0;
		pe.a[i] = 0;
		pt.a[i] = 0;
	}

	for (int i = 0; i < n; i++) {
		cin >> number1 >> number2;
		pr.a[number2] = number1;
	}

	for (int j = 0;j < m; j++) {
		cin >> number1 >> number2;
		pe.a[number2] = number1;
	}

	for (i = N-1; i >= 0; i--) {
		pt.a[i] = pr.a[i] + pe.a[i];

		if (pt.a[i] != 0) {
			cout << pt.a[i] << " " << i << endl;
		}
	}
	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值