详解JavaScript中分解数字的三种方法
网络编程 2021-07-04 14:07www.168986.cn编程入门
这篇文章主要介绍了在JavaScript中分解数字的三种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
本文基于免费代码营基本算法脚本“分解数字”
在数学中,非负整数n的阶乘可能是一个棘手的算法。在本文中,我将解释这种方法,使用递归函数,第二种使用而循环,第三种使用以循环。
算法挑战
返回提供的整体的阶乘。
如果整体用字母n表示,则阶乘是所有小于或等于n的正整数的乘积。
阶乘经常用简写符号n!表示!
例如5!= 1 2 3 4 5 = 120
function factorialize(num) { return num; } factorialize(5);
提供的测试用例
- factorialize(0)应该返回1
- factorialize(5)应该返回120
- factorialize(10)应该返回3628800
- factorialize(20)应该返回2432902008176640000
什么是因数分解?
当将一个因数分解时,就是称为数字乘以每个连续的数字减一个。
如果您的电话号码是5,则您将
5! = 5 4 3 2 1
该模式为
0! = 1
1! = 1
2! = 2 1
3! = 3 2 1
4! = 4 3 2 1
5! = 5 4 3 2 1
1.递归分解一个数字
function factorialize(num) { // If the number is less than 0, reject it. if (num < 0) return -1; // If the number is 0, its factorial is 1. else if (num == 0) return 1; // Otherwise, call the recursive procedure again else { return (num factorialize(num - 1)); / First Part of the recursion method You need to remember that you won't have just one call, you'll have several nested calls Each call: num === "?" num factorialize(num - 1) 1st call – factorialize(5) will return 5 factorialize(5 - 1) // factorialize(4) 2nd call – factorialize(4) will return 4 factorialize(4 - 1) // factorialize(3) 3rd call – factorialize(3) will return 3 factorialize(3 - 1) // factorialize(2) 4th call – factorialize(2) will return 2 factorialize(2 - 1) // factorialize(1) 5th call – factorialize(1) will return 1 factorialize(1 - 1) // factorialize(0) Second part of the recursion method The method hits the if condition, it returns 1 which num will multiply itself with The function will exit with the total value 5th call will return (5 (5 - 1)) // num = 5 4 4th call will return (20 (4 - 1)) // num = 20 3 3rd call will return (60 (3 - 1)) // num = 60 2 2nd call will return (120 (2 - 1)) // num = 120 1 1st call will return (120) // num = 120 If we sum up all the calls in one line, we have (5 (5 - 1) (4 - 1) (3 - 1) (2 - 1)) = 5 4 3 2 1 = 120 / } } factorialize(5);
没有注释
function factorialize(num) { if (num < 0) return -1; else if (num == 0) return 1; else { return (num factorialize(num - 1)); } } factorialize(5);
2.用WHILE循环分解一个数字
function factorialize(num) { // Step 1. Create a variable result to store num var result = num; // If num = 0 OR num = 1, the factorial will return 1 if (num === 0 || num === 1) return 1; // Step 2. Create the WHILE loop while (num > 1) { num--; // decrementation by 1 at each iteration result = result num; // or result = num; / num num-- var result result = num 1st iteration: 5 4 5 20 = 5 4 2nd iteration: 4 3 20 60 = 20 3 3rd iteration: 3 2 60 120 = 60 2 4th iteration: 2 1 120 120 = 120 1 5th iteration: 1 0 120 End of the WHILE loop / } // Step 3. Return the factorial of the provided integer return result; // 120 } factorialize(5);
没有注释
function factorialize(num) { var result = num; if (num === 0 || num === 1) return 1; while (num > 1) { num--; result = num; } return result; } factorialize(5);
3.使用FOR循环分解数字
function factorialize(num) { // If num = 0 OR num = 1, the factorial will return 1 if (num === 0 || num === 1) return 1; // We start the FOR loop with i = 4 // We decrement i after each iteration for (var i = num - 1; i >= 1; i--) { // We store the value of num at each iteration num = num i; // or num = i; / num var i = num - 1 num = i i-- i >= 1? 1st iteration: 5 4 = 5 - 1 20 = 5 4 3 yes 2nd iteration: 20 3 = 4 - 1 60 = 20 3 2 yes 3rd iteration: 60 2 = 3 - 1 120 = 60 2 1 yes 4th iteration: 120 1 = 2 - 1 120 = 120 1 0 no 5th iteration: 120 0 120 End of the FOR loop / } return num; //120 } factorialize(5);
没有注释
function factorialize(num) { if (num === 0 || num === 1) return 1; for (var i = num - 1; i >= 1; i--) { num = i; } return num; } factorialize(5);
到此这篇关于详解JavaScript中分解数字的三种方法的文章就介绍到这了,更多相关js分解数字内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南