小题目 ( 递归 )

150 阅读1分钟

汉罗塔

image.png

let step = 1
// 把n个盘子: 从a移动到c,借助b
function t(n, start, b, end) {
  if(n == 1) {
    console.log(step++, start, '-->', end)
  } else {
    t(n-1, start,end,b) //
    console.log(step++, start, '-->', end)
    t(n-1, b,start,end)
  }
}
// t(1,'A', 'B', 'C')
t(3,'A', 'B', 'C')

斐波那契数列

斐波那契数列,从第3项开始,每一项都等于前两项之和: 0、1、1、2、3、5、8、13、21、34、...

function fb(n){
    if (n == 1 || n==2) {
    	return 1
    }
        
    return fb(n-1)+fb(n-2)
 }
console.log(fb(9)) 
// 34

n的阶乘

function js(num){
    if(num<=1) return 1;
    else{
        return num * js(num-1);
    }
}

更新

 ...