编写递归函数来识别偶数/奇数

时间:2015-05-14 13:21:15

标签: javascript recursion

我正在为Eloquent JavaScript工作,要求您编写一个递归规则来测试“均匀度”。一个数字。作为回报,我总是假的。请有人帮助识别我的错误。

function isEven(num){
    if(num===0){
        return(true);
    }else if (num === 1){
        return(false);
    }else {
        num = num - 2;
        return(find(num));
    }
    }


};

console.log(isEven(12));

3 个答案:

答案 0 :(得分:4)

如果要在自身内部调用函数,则递归的整个点。你真的很接近,但你在函数中调用find而不是isEven(num - 2)

function isEven(num){
    if(num===0){
        return(true);
    }else if (num === 1){
        return(false);
    }else {
        return(isEven(num - 2));
    }
}

console.log(isEven(12));

答案 1 :(得分:2)

function isEven(n) {
    if (n === 0) return true;
    if (n === 1) return false;

    return isEven(n - 2);
}

然而,效率非常低。最好使用这样的东西(例如在真实的代码中):

function isEven(n) {
    return n % 2 === 0;
}

答案 2 :(得分:0)

following will solve your problem

    <html>
<head>
<script language="javascript">
function isOdd(x) {
    return !isEven(x);    
}

function isEven(x) {
    if(x===0) {
        return true;
    } else {
        return isOdd(x-1);
    }
}

alert(isOdd(6));

</script>

</head>
<body>

</body>
</html>