题目链接:P2142 高精度减法 - 洛谷
1.题目

2.算法原理
解法:模拟列竖式计算的过程
- 先用字符串读入,然后拆分每一位,逆序放进数组中
- 利用数组,模拟列竖式减法的过程
- 先是对应位相减,然后处理借位
- 如果减的结果小于0,往前借一位,然后这一位加上10

题目给的数,左边比右边小
在这两步之前要多加一步,在模拟解法的过程,一定是一个较大的数减去较小的数,如果是较小的数减较大的数,列竖式计算过程会出错的,如果这道题给的是99-123,此时要把它转换成123-99,在最终输出结果之前先输出一个负号就可以了,所以我们要先处理一个情况,先比较大小,然后用较大的数减去较小的数
字典序vs数的大小的问题
有一个问题,题目给的这两个数是用字符串来存的,如果直接用字符串比较大小肯定出错,它涉及字典序vs数的大小的问题,此时有两个数101和99,如果是数的话, 101一定大于99 ,但字符串就不一定了,最终比较结果是99大于101,因为比较字符串的时候是按照字典序来比较的,它的比较方式是我管你这串字符串的长度是多少,直接从最高位开

最低0.47元/天 解锁文章
408

被折叠的 条评论
为什么被折叠?



