59 lines
1.6 KiB
Markdown
59 lines
1.6 KiB
Markdown
|
【问题描述】
|
|||
|
|
|||
|
编写程序实现两个超长正整数(每个最长80位数字)的加法运算。
|
|||
|
|
|||
|
【输入形式】
|
|||
|
|
|||
|
从键盘读入两个整数,要考虑输入高位可能为0的情况(如00083)。
|
|||
|
|
|||
|
1. 第一行是超长正整数A;
|
|||
|
2. 第二行是超长正整数B;
|
|||
|
|
|||
|
【输出形式】
|
|||
|
|
|||
|
输出只有一行,是两个长整数的运算结果,从高到低依次输出各位数字。各位数字紧密输出。
|
|||
|
|
|||
|
算法提示:
|
|||
|
|
|||
|
1. 用字符串输入两个超长整数,分别存放在两个字符串中,每一位对应一个字符串中的字符。
|
|||
|
2. 以较短的超长整数为基准,从低位到高位,对应位转换成数字后相加,再加上前一位相加的进位,得到的和模上10再转换为字符即为当前位,得到的和整除10即为当前位的进位。将计算得到的每一位保存到结果字符数组。
|
|||
|
3. 将较长字符串的剩余位加上最后一个进位移到结构数组后面。
|
|||
|
4. 将结果数组反序输出(去掉高位多余的0)。
|
|||
|
|
|||
|
【输入样例】
|
|||
|
|
|||
|
```
|
|||
|
134098703578230056
|
|||
|
234098
|
|||
|
```
|
|||
|
|
|||
|
【输出样例】
|
|||
|
|
|||
|
```
|
|||
|
134098703578464154
|
|||
|
```
|
|||
|
|
|||
|
【样例说明】
|
|||
|
|
|||
|
```
|
|||
|
进行两个正整数加法运算,134098703578230056 + 234098 = 134098703578464154。
|
|||
|
```
|
|||
|
|
|||
|
【评分标准】
|
|||
|
|
|||
|
完全正确得20分,每个测试点4分,提交程序文件名为 `add.c` 。
|
|||
|
|
|||
|
# 运行结果
|
|||
|
|
|||
|
成功通过编译, 且无编译警告
|
|||
|
|
|||
|
共有测试数据:5
|
|||
|
平均占用内存:1.924K 平均CPU时间:0.00571S 平均墙钟时间:0.00573S
|
|||
|
|
|||
|
测试数据 评判结果
|
|||
|
测试数据1 完全正确
|
|||
|
测试数据2 完全正确
|
|||
|
测试数据3 完全正确
|
|||
|
测试数据4 完全正确
|
|||
|
测试数据5 完全正确
|