nunnly / everycode

Javascript 每日一练
116 stars 26 forks source link

2014年11月21日-.-22日 #8

Open nunnly opened 9 years ago

nunnly commented 9 years ago

周末的惊喜,试试递归,依旧还是实现一个斐波那契数。

/*
参数 number
返回 number
*/

function fib(num){

}

fib(1); // === 0
fib(2); // === 1
fib(3); // === 1
fib(4); // === 2
fib(5); // === 3
XadillaX commented 9 years ago
function fib(num){
    return (num ^ 1) ? ((num | 3) === 3 ? 1 : (fib(num - 1) + fib(num - 2))) : 0;
}

...0. 0 惊喜在哪呢?

soulcm commented 9 years ago
var fibNum = function(i) {
    if (i <= 1) {
        return 0;
    }
    if (i == 2) {
        return 1;
    }
    return arguments.callee(i - 1) + arguments.callee(i - 2); 
};
XadillaX commented 9 years ago

上一个学弟的:

function fib(num) {
    return num.toString().match(/^[12]$/) !== null ? (num - 1) : (fib(num - 1)  + fib(num - 2));
}
VaJoy commented 9 years ago
    function fib(num){
      return num<3?--num:fib(num-1)+fib(num-2)
    }