大数除的“伪O(1)”算法(类似小学算术)

本文介绍了一种处理大数除法的算法,通过先近似除以一个较大的数,然后逐步调整优化,降低复杂度。这种方法虽不是真正的O(1),但由于减少了大数运算次数,被称为“伪O(1)大数除法”。算法的核心是通过不断调整,使得剩余值的位数与除数相同或更小,从而加速计算过程。
摘要由CSDN通过智能技术生成

                                                                                                  大数除伪O(1)算法

    前段时间在做计算器的大型实验,有一个版本要求大数运算,加减乘倒还好,除,觉得很难写。所以就在网上搜索了,不少博客,但是好像都是一个大数除以一个整数的方法,并没有大数除以大数的方法。总不能,用被减数一直减减数在那循环计数吧。遇到100000000000000000000/1这种极端情况,那还不得减到,猴年马月去!!

   后来,自己绞尽脑汁,想出来一种方法,觉得还不错,所以跟大家分享一下。

   直接描述有些抽象,那我就直接举个例子吧!

   比如,74811232478273232312332除以78233。

   其实,本质还是模仿减法。像(1)74811232478273232312332这个数,除以(2)78233很难算,但是我们可以除得大一点除以99999,,也就到了100000,结果非常明显,就是除去后5位的字符串,即(3)748112324782732323(删去12332)。这时,拿这个近似的解,即(3)重新反乘除数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值