专题链接:高精度题表
题目传送门
题目大意:
1、给出两个大整数a,b,求a=b;
2、保证 a>b;
====================================================================
详细分析:
1、读入+存储+逆序对齐:
1.1 用 s [ ] 数组来存储第一个字符串
1.2 将 s [ ] 数组的 字符串,逆序放入 a [ ] 数组中,以第一位作为个位,翻转对齐,方便运算;
1.3 重复利用 s [ ] 数组来存储第二个字符串
1.4 将 s [ ] 数组的 字符串,逆序放入 b [ ] 数组中,以第一位作为个位,翻转对齐,方便运算;
1.5 到这个时候,我们得到了 a [ ] ,b [ ] 两个数组,分别存储了两个将要计算的整数(其实是两个序列)
1.6 分别用变量 na,nb 来记录每个序列的长度(这个数有多少位),na=9,nb=8;
2、模拟竖式计算:
2.1 因为全部数字是翻转的,所以个位在左边,最高位在右边:
2.2 对 a [ ] ,b [ ] 的各数位分别求差,直接存储到 c [ ] 数组中:
2.3 对 c [ ] 数组:从左向右,依次借位,得到新的 c [ ] 数组:
3、反向逐位输出:
3.1 因为数位对齐,从个位开始,所以要反向输出。
===========================================================================================
思路看懂了吗?别着急,还有很多细节处理要学习,下面是代码和解释