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;
}
相关推荐
一个王同学25 分钟前
从零到一 | CV转多模态大模型 | week17 | LLM 推理优化 & vLLM 详解
人工智能·深度学习·算法·机器学习·计算机视觉·vllm
旖-旎2 小时前
《LeetCode 53 最大子数组和 || LeetCode 918 环形子数组的最大和》
c++·算法·leetcode·动态规划
变量未定义~2 小时前
单调栈+倍增思想 皇家守卫【算法赛】、单调队列 附近最小
算法
QN1幻化引擎2 小时前
给 AI 做一次「意识体检」——基于 QN1 幻化引擎的灵鉴意识识别框架与 DalinX V5 实测
大数据·数据结构·人工智能·算法·架构
拂拉氏2 小时前
【知识讲解】 AVL树从基本成员的介绍到核心接口的实现(插入、判断、删除等等)
数据结构·算法·avl树
可靠的仙人掌3 小时前
SAC(Soft Actor-Critic)算法底座
开发语言·算法·php
c238563 小时前
《动态规划:从“傻傻穷举”到“过目不忘”的修仙之路》
c++·算法·动态规划
王老师青少年编程4 小时前
csp信奥赛C++高频考点专项训练:【二分答案】案例2:木材加工
c++·二分答案·csp·高频考点·信奥赛·木材加工
海石4 小时前
单调栈复健,顺便,牺牲一下吧,空间复杂度!一切献给AC
算法·leetcode
海石4 小时前
JS击败94%,Hard题想不到动态规划,那就用数组和栈试试
算法·leetcode