JavaScript之N的阶乘、递归、循环
1、递归
function recursionFactorial(n) {
if (n == 1) return 1;
return n * recursionFactorial(n - 1);
}
console.log(recursionFactorial(5));
// 120
2、循环
function factorial(params) {
if (params < 1) return '请输入大于0的值。';
if (!/^\d+$/.test(Number(params))) return '请输入纯数字!';
let sum = 1,
i = 1;
for (; i <= params;)(sum *= i, i++);
return sum;
}
console.log(factorial(7));
// 5040
console.log(factorial('7'));
// 5040
console.log(factorial(0));
// 请输入大于0的值。
console.log(factorial(-5));
// 请输入大于0的值。
console.log(factorial('柒'));
// 请输入纯数字!
console.log(factorial('a'));
// 请输入纯数字!
console.log(factorial('7柒a'));
// 请输入纯数字!
JavaScript之递归、斐波那契数列、兔子数列、黄金分割数列、解构、for、Number、alert、includes
递归基础
function fun(n) { // 退出条件 if(n === 1) return 1; return n * fun(n - 1); } console.log(fun(3)); // 6
return 3 * fun(2);
return 3 * (2 * fun(1));
return 3 * (2 * 1);
6
最后的return
需等待fn
递归结束才执行
递归函数必须添加退出条件
纯递归实现斐波那契数列
function fibonacciSequenceRecursion(n) {
n = Number(n);
if (!n) return alert('请正确输入值');
if (n == 1 || n == 2) return 1;
return fibonacciSequenceRecursion(n - 2) + fibonacciSequenceRecursion(n - 1);
}
console.log(fibonacciSequenceRecursion(7));
// 13
递归+includes实现斐波那契数列
function fibonacci(n) {
n = Number(n);
// 退出条件
if([1, 2].includes(n)) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
console.log(fibonacci(6));
// 8
循环+解构实现斐波那契数列
function fibonacciSequenceFor(n) {
n = Number(n);
if (!n) return alert('请正确输入值');
if (n <= 2) return 1;
let a = 1,
b = 1;
for (let i = 2; i < n; i++) [a, b] = [b, a + b];
return b;
}
console.log(fibonacciSequenceFor(8));
// 21
alert
MDN
window.alert()
令浏览器显示一个带有可选的信息的对话框,并等待用户离开该对话框。
在某些情况下(例如,当用户切换标签时)浏览器可能不会实际显示一个对话框,或者不等待用户离开对话框。
w3school
如果要确保信息传递给用户,通常会使用警告框。
当警告框弹出时,用户将需要单击“确定”来继续。
Number
MDN
Number
值表示像37
或-9.25
这样的浮点数值。Number
构造函数包含常量和处理数值的方法。其他类型的值可以使用Number
函数转换为数值。
w3school
Number
函数将对象参数转换为表示对象值的数字。
如果该值无法转换为合法数字,则返回NaN
。
如果参数是Date
对象,则Number
函数返回自UTC 1970
年1
月1
日午夜以来的毫秒数。
includes
MDN
includes
方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true
,否则返回false
。
w3school
includes
方法确定数组是否包含指定的元素。
如果数组包含元素,则此方法返回true
,否则返回false
。includes
方法区分大小写。
相关链接文章来源:https://www.toymoban.com/news/detail-851047.html
1、来自CSDN的JavaScript写斐波那契数列的几种方式
2、来自博客园的JS写斐波那契数列的几种方法文章来源地址https://www.toymoban.com/news/detail-851047.html
到了这里,关于JavaScript之递归的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!