洛谷 P2142 高精度减法(详解)c++

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

1.题目  

2.算法原理

解法:模拟列竖式计算的过程

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

题目给的数,左边比右边小

在这两步之前要多加一步,在模拟解法的过程,一定是一个较大的数减去较小的数,如果是较小的数减较大的数,列竖式计算过程会出错的,如果这道题给的是99-123,此时要把它转换成123-99,在最终输出结果之前先输出一个负号就可以了,所以我们要先处理一个情况,先比较大小,然后用较大的数减去较小的数

字典序vs数的大小的问题

有一个问题,题目给的这两个数是用字符串来存的,如果直接用字符串比较大小肯定出错,它涉及字典序vs数的大小的问题,此时有两个数101和99,如果是数的话, 101一定大于99 ,但字符串就不一定了,最终比较结果是99大于101,因为比较字符串的时候是按照字典序来比较的,它的比较方式是我管你这串字符串的长度是多少,直接从最高位开

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值