大数除伪O(1)算法
前段时间在做计算器的大型实验,有一个版本要求大数运算,加减乘倒还好,除,觉得很难写。所以就在网上搜索了,不少博客,但是好像都是一个大数除以一个整数的方法,并没有大数除以大数的方法。总不能,用被减数一直减减数在那循环计数吧。遇到100000000000000000000/1这种极端情况,那还不得减到,猴年马月去!!
后来,自己绞尽脑汁,想出来一种方法,觉得还不错,所以跟大家分享一下。
直接描述有些抽象,那我就直接举个例子吧!
比如,74811232478273232312332除以78233。
其实,本质还是模仿减法。像(1)74811232478273232312332这个数,除以(2)78233很难算,但是我们可以除得大一点除以99999,,也就到了100000,结果非常明显,就是除去后5位的字符串,即(3)748112324782732323(删去12332)。这时,拿这个近似的解,即(3)重新反乘除数