【PAT甲级】1002_A+B_ Polynomials (25 分) JS

这篇博客介绍了如何使用JavaScript解决PAT甲级考试中的多项式求和问题。作者提供了详细的解题思路和代码实现,包括处理多项式相加时的精度问题和输出格式要求,并给出了多个测试用例及其预期输出。
摘要由CSDN通过智能技术生成

最近疫情在家办公,足不出户,做做 PAT 的题。奉上【PAT甲级】JS 解题分析————第二篇。

原题

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≤100≤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

原题翻译

计算多项式的和。

输入格式:每个样例有两行,每一行代表一个多项式,K是非零整数,Ni是指数,aNi是系数,K范围是1到10,NK范围是0到1000。

输出格式:多项式A和B的和,输出一行,格式与输入类似,行尾不可有空格。精确到小数点后一位。

解题

思路:

  1. 先遍历 A, 指数作为 key, 系数作为 value,存在 map 中。
  2. 类似的继续遍历 B,相同key 的 value 相加。(value 保留一位小数)
  3. map 按 key 的值排序。

注意事项:

  1. 输出要精确到小数点后一位,比如 0.2+0.1 为 0.30000000000000004,这种需要处理一下。
  2. 如果系数为 O,该项不输出,如 1 2 -1 和 1 2 1, 输出应为 0。
  3. 输出结果按指数降序来,如 2 1 2.9 2 1.5 这种输出不正确,应该为 2 2 1.5 1 2.9。

测试用例:

  • input: 2 1 2.4 0 3.2 和 2 2 1.5 1 0.5; output 3 2 1.5 1 2.9 0 3.2
  • input: 2 -1 0.2 0 3 和 2 2 1.5 -1 0.1; output: 3 -1 0.3 2 1.5 0 3.0
  • input: 1 0 2.2 和 1 0 -2.2; output: 0
  • input: 3 2 2.5 1 2.4 0 3.2 和 2 2 -2.5 1 0.5; output 2 1 2.9 0 3.2

代码:

const readline = require('readline');
rl = readline.createInterface({
   
  input: process.stdin,
  output
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值