高精度计算
主要的方法是利用数组模拟计算比如:
高精度加法
[**************]13 + [***********]1
开两个数组存储:
a[]={3,1,2,1,1,1,0,1,9,8,7,6,5,4,3,2,1};
b[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
两个数组分别把数值倒存, 在一位一位的加, 每位加后判断是否大于10, 在进位(注:如果太大的数值, 可以考虑4位一存哦.) 注意下面的a1,b1,c1 为 数组的长度
四位一存:
高精度减法
-- 18:59 2009年5月17日 (CST)
高精度乘法
四位一计算:
更快的算法需要借助FFT(也有人喜欢用NTT) 实现nlogn
高精度除法
只提供程序段,未处理循环小数。
-- 22:24 2011年8月20日
请看到这个问题的OIers 注意并及时给出正确解法,最近忙于琐事,拜托了,这个网站很久无人管理了。--SepHiRoTH 23:02 2011年7月30日 (CST)
算法已改。 --Taophee 22:24 2011年8月20日
做一下循环小数,这需要加一段,既然做了就把 它做好怎样?--SepHiRoTH 08:20 2011年8月21日 (CST)
高精度阶乘
作为一种高精度乘法的扩展算法,实质为高精度乘低精度,算法如下:
--SepHiRoTH 18:59 2009年5月17日 (CST)
高精度快速幂
主要用了二分的手段。中间的乘法就看上面的吧。 --By Clarkok
高精度计算
主要的方法是利用数组模拟计算比如:
高精度加法
[**************]13 + [***********]1
开两个数组存储:
a[]={3,1,2,1,1,1,0,1,9,8,7,6,5,4,3,2,1};
b[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
两个数组分别把数值倒存, 在一位一位的加, 每位加后判断是否大于10, 在进位(注:如果太大的数值, 可以考虑4位一存哦.) 注意下面的a1,b1,c1 为 数组的长度
四位一存:
高精度减法
-- 18:59 2009年5月17日 (CST)
高精度乘法
四位一计算:
更快的算法需要借助FFT(也有人喜欢用NTT) 实现nlogn
高精度除法
只提供程序段,未处理循环小数。
-- 22:24 2011年8月20日
请看到这个问题的OIers 注意并及时给出正确解法,最近忙于琐事,拜托了,这个网站很久无人管理了。--SepHiRoTH 23:02 2011年7月30日 (CST)
算法已改。 --Taophee 22:24 2011年8月20日
做一下循环小数,这需要加一段,既然做了就把 它做好怎样?--SepHiRoTH 08:20 2011年8月21日 (CST)
高精度阶乘
作为一种高精度乘法的扩展算法,实质为高精度乘低精度,算法如下:
--SepHiRoTH 18:59 2009年5月17日 (CST)
高精度快速幂
主要用了二分的手段。中间的乘法就看上面的吧。 --By Clarkok