js进行大数阶乘的算法

来源:互联网 发布:淘宝卖家真实现状 编辑:程序博客网 时间:2024/06/15 02:41

今天遇到的一个算法题,让计算阶乘,发现原递归存在计算溢出的问题,于是找到了这个用数组来替代递归算法的函数。
个人理解:这个函数主要是将每一次的乘法精确到了位数,每次只计算阶乘位数以内的乘法来防止计算溢出。

function f(n) {// a代表结果 [0]是个位依次类推    var a = [1];    for (var i = 1; i <= n; i++) {        // 判断条件可以理解为为 在j大于当前被乘数的位数的时候,存在进位则强制将a扩增一个位数        for (var j = 0, c = 0; j < a.length || c != 0; j++) {            // 每次执行这一此循环时            // 将进位数归0,当前位数归0,然后从当前位数开始与阶乘数i相乘            // 用m保存相乘的结果(阶乘数*当前位数+上一位的进位数)            // 把当前位数设置为m对10取模            // 把c设置为进位数也就是减去当前位数再除10            var m = (j < a.length) ? (i * a[j] + c) : c;            a[j] = m % 10;            c = (m - a[j]) / 10;        }    }    return a.reverse().join("");}

感谢Orange_J
原博客连接

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 九层塔怎么种 九层塔薄荷 九层塔的吃法 九层塔有什么作用 九层塔的别名 九层塔炒鸡肉 九层塔植物图片 九层塔在超市又叫什么 九层塔为什么禁止室内种植 九层莲花塔的折法图解 九层妖塔真的存在吗 九层妖塔昆仑山事件真假 九层塔在菜场叫什么 九层塔的功效与作用 九层妖塔2部免费观看 九层妖塔被判侵权一 九层塔是什么菜图片 蔬菜子种批发 蔬菜种子图片 修剪机 菜种子大全图片 种子批发 蔬菜种子批发 中国蔬菜种子网 蔬菜种子批发网 蔬菜种子网 蔬菜种子批发市场 菜种子 高羊茅种子 九层糕 印尼九层糕 九层糕的做法 九层糕图片 椰汁九层糕的做法 佛山九层糕 温州九层糕 七层糕 红豆糕的家常做法 千屋糕做法 红豆糕的做法大全 岭头