递归函数:是指函数调用自己本身,则称该函数为递归函数。
//以下就是递归函数,但是会死循环,因为没有出口 function f(){ console.log(‘递归函数‘); f(); } f();
递归运算会无终止地自身调用。因此,在递归运算中要结合 if 语句进行控制,只有在某个条件成立时才允许执行递归,否则不允许调用自身。
例子1:
// 1 1 2 3 5 8 13 21..... 根据规律求出第20个数是多少 //规律 n = (n-1) + (n-2) 就是当前这个数等于前面两个数相加的和 function f(n){ if (n <= 1 ) { return n; }else{ return f(n-1) + f(n-2); } } var a = f(9);//求第几个数是多少 就是第8个数+第7个数的和 console.log(a);//打印34
例子2:
//0 1 3 6 10 15 21... 求第20位数是多少 //规律:(n-1) + n function f(n){ if (n == 0) { return 0; }else{ return n + f(n-1); } } console.log(f(0)); console.log(f(1)); console.log(f(2)); console.log(f(3)); console.log(f(20));