求C++写的高精度整除程序!
已知:a,b均为正整数,a>=b,1<=a,b<=10^200,amodb=0.求adivb。如果能顺带分析下算法的时间和空间复杂度就更好了,谢谢!就是比如求987654...
已知:a,b均为正整数,a>=b, 1<=a,b<=10^200 ,a mod b=0.
求a div b。
如果能顺带分析下算法的时间和空间复杂度就更好了,谢谢!
就是比如求987654321/123456怎么算比较快,尤其是当这两个数都比较大的时候。
描述一下算法或贴出程序来。 展开
求a div b。
如果能顺带分析下算法的时间和空间复杂度就更好了,谢谢!
就是比如求987654321/123456怎么算比较快,尤其是当这两个数都比较大的时候。
描述一下算法或贴出程序来。 展开
2个回答
展开全部
一种思路。
首先是大数的表达。利用数组或链表,按照10000(或其他的值,只要保证小于你使用类型的二次根就行)为一位,保存。
然后是大数的加减法和乘法(除法会用到)。这个利用竖式计算法就可以了。
至于商的计算,可以考虑3/2取1。什么意思,就是仅计算被除数的前三位与除数的前两位的商,然后仅取商的第一位作为有效位。随后用被除数减去除数乘以这个商作为新的被除数,直到被除数为零。商的合成就是每一位一位的拼凑出来的。
首先是大数的表达。利用数组或链表,按照10000(或其他的值,只要保证小于你使用类型的二次根就行)为一位,保存。
然后是大数的加减法和乘法(除法会用到)。这个利用竖式计算法就可以了。
至于商的计算,可以考虑3/2取1。什么意思,就是仅计算被除数的前三位与除数的前两位的商,然后仅取商的第一位作为有效位。随后用被除数减去除数乘以这个商作为新的被除数,直到被除数为零。商的合成就是每一位一位的拼凑出来的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询