零是偶数
一个很奇怪。
对于任何其他数字N,其均匀度与N-2相同。
甚至定义一个与该描述相对应的递归函数。该函数应接受一个参数(正整数)并返回一个布尔值。
这是我对isEven的实现:
let isEven = function(n){
even = 0;
odd = 1;
if(n == even){
return true;
}
else if (n == odd) {
return false;
}
else{
n -= 2;
console.log(n); //Used to see value of n through each call
isEven(n);
}
};
当我调用此函数时,它返回undefined
document.write(isEven(50)); //prints `undefined`
console.log(n)
的输出如下:
Failed to load resource: net::ERR_FILE_NOT_FOUND
48
46
...
0
我不确定为什么Failed to load resource: net::ERR_FILE_NOT_FOUND
是第一个输出,但是在此之后,n
达到了0
,所以为什么
if(n == even){
return true;
}?
不执行?
答案 0 :(得分:2)
您需要从递归调用中返回结果。
public Intent(Context packageContext, Class<?> cls) {
mComponent = new ComponentName(packageContext, cls);
}
没有Class<*>
部分的更好的样式,因为如果以前返回就没有必要。
===
),因为不严格会导致错误的假设
let isEven = function(n){
const // declare local variables/constants
even = 0,
odd = 1;
if(n == even){
return true;
}
else if (n == odd) {
return false;
}
else{
//n -= 2; no need to reassign a value for a single use
return isEven(n - 2); // return here
}
};
console.log(isEven(50));
console.log(isEven(21));
答案 1 :(得分:1)
但不要错过学习mutual recursion的机会!
const isEven = (n = 0) =>
n === 0
? true
: isOdd (n - 1)
const isOdd = (n = 0) =>
n === 0
? false
: isEven (n - 1)
console .log
( isEven (0) // true
, isEven (1) // false
, isEven (2) // true
, isEven (3) // false
, isEven (99) // false
)
console .log
( isOdd (0) // false
, isOdd (1) // true
, isOdd (2) // false
, isOdd (3) // true
, isOdd (99) // true
)