使用映射模拟竖式加法,只处理实际出现的数位,不展开整个大整数。
123:5 对应指数 7、6、5 上的数字 1、2、3。0:0。例如,12345 应编码为 123:2 45:0 0:0。若结果为零,只输出 0:0。
给定两个位数可能极多的非负整数,请求出它们相加后的结果。
这类整数的十进制表示通常只有少量数位不为 0,所以仅记录非零数字片段。每个片段写作 c:p,其中 c 是片段系数,p 是十进制位权的指数。
一个
c:p片段所贡献的数值为 c×10p;p 对应系数最右侧数字所在的数位。
表示方式需要遵守以下约定:
999:1999999999。8765432 应划为 876、543、2。0:0,数值为零时只写这一标记。相邻项之间以空格隔开。例如:
8765004009 的编码为 876:7 5:6 4:3 9:0 0:0。8765004000 的编码为 876:7 5:6 4:3 0:0。两行均采用上述片段表示方式。
输出这两个数相加得到的数值。
结果也须按上述约定编码:连续非零数字从高位起每次最多取 3 位,并在末尾附上 0:0。
输入:
567:3 89:1 0:0
444:3 321:0 0:0
输出:
1:6 122:2 11:0 0:0
解释:
两行分别代表 567890 和 444321,相加可得 1012211。
零位将结果分为 1 与 12211 两段;后一段再从左向右划为 122、11,故得到上面的编码。
输入:
999:3 999:0 0:0
1:0 0:0
输出:
1:6 0:0
解释:
相加的数值是 999999 与 1,得到 1000000。连续进位后,只有指数为 6 的数位非零,编码因此只包含这一片段和结束标记。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册