永发信息网

大数除法的实现

答案:1  悬赏:80  手机版
解决时间 2021-04-07 20:10
  • 提问者网友:记得曾经
  • 2021-04-07 05:52
大数除法的实现
最佳答案
  • 五星知识达人网友:詩光轨車
  • 2021-04-07 07:10
如果你需要做无限制位数的除法,给你一下原理你可以自己试试看.
1.无限制位数的除法,你需要用字串(char *)来保存运算数.
2.仔细回忆小学时候我们做的除法竖式,除数乘商去减被除数的前N位(N=除数*商的当位)呵呵,我们正是要模拟这个除式的过程来解决我们的问题.
3.通过不断取前N位的被除数来除现有的除数(这个除是有限位的,所以我们可以直接用/来进行)得到的就是商的当前位,把他存在另一个结果字串中,同样的除数对被除数前N位求模(也是有限位,所以我们也能直接用%)得到得就是没有除掉的,加上被除数的N+1位构成新的被除数循环除下去就得到了所有的商和最后的余数.
4.这个方法适用于除数是有限位,而被除数不限位的情况,如果除数和被除数都是不限位只要把3步骤里面的除换成循环减就可以了,减到不小于0的一个数就是最后的余数,继续加上N+1位递归,直到N+1位为空就除完了呵呵,这种办法还可以实现无限位乘法,怎么做?乘法竖式怎么做就怎么做呵呵~~

如果没记错的话,你可以试试HugeCalc 下载地址http://sccnc.onlinedown.net/down/HugeCalc.rar

这是我站粘的介绍,自己可以看看
HugeCalc 是一款高精度算法库(同时包含 MBCS + UNICODE 版),适合于大规模科学计算,尤其适用于数论、密滤学等领域研究,其核心算法耗费作者十余年的心血。具有占用资源少、效率高、使用便捷、易二次开发、可移植性强、可扩展性好等特点。关键文件 HugeCalc.dll 虽然仅 148 KB,却提供了 372 个功能接口,且其计算速度完全可与大型专业数学工具软件媲美!其最核心的算法现已优于当前的 apfloat、Mathematica、Maple,甚至 GMP!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯