递归

#递归

递归:通俗来说程序调用自身的编程技巧称为递归。

话不多说,实例解释

例一:

实际上这张图就很形象地表达出了递归,这句

吓得我抱起了抱着抱着抱着我的小鲤鱼的我的我的我

如果从字面意义上看可能看不出是什么意思,那么我们可以通过代码来实现同样的效果:

function test(x) {
   console.log('抱着');
   if (!x) {
        console.log('我的小鲤鱼')
    } else {
        test(--x);  // 递归调用
    }
    console.log('的我');
}

console.log('吓得我抱起了');
test(2)

// x=3
// (x++)+(++x)=?

例二:
斐波拉契数列
1,1,2,3,5,8,13,21…

function fib(count) {
    //参数判断
    var count = parseInt(count);
    if (isNaN(count) || count < 0) {
        return 0;
    }

    function f(count) {
        if (count <= 1)
            return 1;
        return f(count - 1) + f(count - 2);   
    }
    return f(count);
}
res = fib(2);
console.log(res);

补充:a++和++a 都属于自增运算符,区别是对变量a的值进行自增的时机不同。a++是先进行取值,后进行自增。++a是先进行自增,后进行取值。

例如:假设 x=3

(x++)+(++x)

解释:对于第一个(x++),因为x++是先取值后自增,所以(x++)所取得值为3,然后x进行自增,此时x=4;对于第二个(++x),因为++x是先自增后取值,所以(++x)所取得值为5,此时x=5,所以结果为8。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值