#3505. [GESP五级模拟]小数加法

[GESP五级模拟]小数加法

题目描述

计算器程序经常需要处理超出内置整数范围的大数。给定两个非负小数 aabb,请计算 a+ba+b,并保留一位小数输出。

这里的"非负小数"指由数字和小数点组成的十进制数,不含正负号。整数部分可以很长,小数部分不超过 22 位。

输入格式

输入一行两个字符串 aabb,中间用一个空格隔开。

每个字符串满足:

  • 整数部分至少 11 位数字,可以含有前导零;
  • 可以含一个小数点;若含小数点,则小数点后 121\sim 2 位数字;
  • 不含小数点时表示整数,小数部分视为 00

输出格式

输出一行一个字符串,表示 a+ba+b 保留一位小数(四舍五入)的结果。四舍五入指:先算出 a+ba+b 的精确值,再看其第二位小数,若小于 55 则舍去,否则向十分位进一(进位可能继续影响整数部分)。

要求:

  • 整数部分不输出前导零;若整数部分为 00,则输出 0
  • 小数部分固定输出 11 位数字。

样例 #1

1.5 2.3
3.8

样例 #2

2.65 1.2
3.9

样例解释 #2

2.65+1.2=3.852.65+1.2=3.85,第二位小数是 55,向十分位进一,得到 3.93.9

样例 #3

999999999999999999999999999999.99 999999999999999999999999999999.99
2000000000000000000000000000000.0

样例解释 #3

两个数相加的精确结果为 1999999999999999999999999999999.981999999999999999999999999999999.98,第二位小数 88 向十分位进一,整数部分也随之进位。

样例 #4

更多数据见随题分发的文件 examples/ex_add1.inexamples/ex_add1.ans

数据范围

对于所有数据:

  • 整数部分长度不超过 10001000
  • 小数部分长度不超过 22

时间限制 1.00s1.00\text{s},空间限制 512MB512\text{MB}

本题采用捆绑测试。只有通过一个子任务的全部测试,才能获得该子任务的分数。

子任务 分值 测试点 附加约束
11 3030 001008001 \sim 008 aabb 均不含小数点
22 009016009 \sim 016 aabb 的整数部分长度均不超过 99
33 4040 017024017 \sim 024 无附加约束