我正在为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));
答案 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>