PAT 甲级 1002题

题目:1002 A+B for Polynomials

This time, you are supposed to find A+B where A and B are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:

K N1​ aN1​​ N2​ aN2​​ ... NK​ aNK​​

where K is the number of nonzero terms in the polynomial, Ni​ and aNi​​ (i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10,0≤NK​<⋯<N2​<N1​≤1000.

Output Specification:

For each test case you should output the sum of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.

Sample Input:

复制代码
2 1 2.4 0 3.2
2 2 1.5 1 0.5

Sample Output:

复制代码
3 2 1.5 1 2.9 0 3.2

解题思路:

可以设置一个数组,下标为指数,存储的数据是系数,然后通过输入依次将值按照指数(下标)存入数组中,再遍历数组,输出值不为0的项。

注意:

①测试点1:当输出的时候需要将系数保留1位小数;

②测试点3/4/5/6:当A、B对应指数的系数相加正好为0的时候,其输出项数需要仔细的计算(即为当系数为0的时候,需要将该项去掉);

代码:

cpp 复制代码
#include<iostream>
using namespace std;
#define MAX 1002
int main()
{
	float arr[MAX] = {0.0f};    //对应指数作为数组下标,其存储的内容为该指数对应的系数
	int zhishu = 0;   //指数
	float xishu = 0;    //系数
	int K = 0;   //表示未知数的个数
	int K_Sum = 0;   //表示最终表达式的未知数个数

	//输入
	int j = 2;
	while(j--)   //输入两轮:A和B
	{
		cin>>K;
		K_Sum += K;
		while(K--)
		{
			cin>>zhishu>>xishu;
			for(int i=0;;i++)
			{
				if(i == zhishu)
				{
					if(arr[i] != 0.0f)   //如果A和B有相同的指数
					{
						K_Sum--;
						arr[i] += xishu;
						if(arr[i] == 0.0f)    //系数相加结果为0
						{
							K_Sum--;
						}
						break;
					}
					arr[i] += xishu;
					break;
				}
			}
		}
	}

	//输出
	cout<<K_Sum;
	for(int i=1001;i>=0;i--)
	{
		if(arr[i] != 0.0f)
		{
			cout<<" "<<i<<" ";
			printf("%.1f",arr[i]);
		}
	}
	cout<<endl;
	system("pause");
	return 0;
}
相关推荐
刘琦沛在进步23 分钟前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++
我在人间贩卖青春1 小时前
C++之this指针
c++·this
爱敲代码的TOM1 小时前
数据结构总结
数据结构
云姜.1 小时前
java多态
java·开发语言·c++
CoderCodingNo1 小时前
【GESP】C++五级练习题 luogu-P1865 A % B Problem
开发语言·c++·算法
陳10301 小时前
C++:红黑树
开发语言·c++
大闲在人1 小时前
7. 供应链与制造过程术语:“周期时间”
算法·供应链管理·智能制造·工业工程
一切尽在,你来1 小时前
C++ 零基础教程 - 第 6 讲 常用运算符教程
开发语言·c++
小熳芋1 小时前
443. 压缩字符串-python-双指针
算法
Charlie_lll2 小时前
力扣解题-移动零
后端·算法·leetcode