JS:递归基础及范例——斐波那契数列 杨辉三角
Posted 参谋长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS:递归基础及范例——斐波那契数列 杨辉三角相关的知识,希望对你有一定的参考价值。
定义:程序调用自身的编程技巧称为递归。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
一般应用于不是清晰级别的结构名调用上。
构成递归需具备的条件:
1. 子问题须与原始问题为同样的事,且更为简单;
2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。
例1:斐波那契数列
//斐波那契数列,又称黄金分割数列,指的是这样一个数列:
//1、1、2、3、5、8、13、21、……
//求第i个数
<script>
function sl(var i){
if(i<=2){
return 1;
} else{
return sl(i-1)+sl(i-2);
if(i<=2){
return 1;
} else{
return sl(i-1)+sl(i-2);
}
}
}
</script>
例2:杨辉三角
// 1
// 1 1
// 1 2 1 //第n行第m个数:n=3,m=2时,数字为2;
// 1 3 3 1
// 1 4 6 4 1
// ......
// 1
// 1 1
// 1 2 1 //第n行第m个数:n=3,m=2时,数字为2;
// 1 3 3 1
// 1 4 6 4 1
// ......
//求第n行第m个数
<script>
function yhsj(n,m){
if(m>n){
return false;
} else {
if(m==1 || m==n){
return 1;
} else {
return yhsj(n-1,m) + yhsj(n-1,m-1);
}
}
}
<script>
function yhsj(n,m){
if(m>n){
return false;
} else {
if(m==1 || m==n){
return 1;
} else {
return yhsj(n-1,m) + yhsj(n-1,m-1);
}
}
}
</script>
以上是关于JS:递归基础及范例——斐波那契数列 杨辉三角的主要内容,如果未能解决你的问题,请参考以下文章
Python基础——递归及其经典例题(阶乘斐波那契数列汉诺塔)
Python基础——递归及其经典例题(阶乘斐波那契数列汉诺塔)