Определить isEven в терминах isOdd в JavaScript

Я работаю над упражнением Codecademy:

Помните функции isOdd и isEven из упражнения 3.4?

Мы бы хотели, чтобы вы снова их кодировали! Но на этот раз цель состоит в том, чтобы определить одну функцию в терминах другой, используя! условное обозначение.

Определите isOdd, а затем определите isEven в терминах isOdd.

Я пробовал несколько разных способов, которые я хотел бы работать, как console.log(!isOdd(1));а также(n !% 2 ===)Никто из них не прав.

Вот код, который у меня есть:

var isOdd = function (n)
{
 if (n % 2 ===0)
{
 return false;
} else {
 return true;
}
};
var isEven =function (n)
{
 if (n % 2 === 0)
{
 return true;
} else {
 return false;
}
};
console.log(isOdd(1));
console.log(isOdd(2));
console.log(isOdd(999));

4 ответа

Решение

Это просто:

var isEven = function (n)
{
    return !isOdd(n);
}
var isOdd = function(n){
 if (n % 2 !== 0)  {
 return true;
 }  else  {
 return false;}
 };

var isEven = function(n){
 return !isOdd(n) ;
 };
 console.log(isOdd(11));
     var isOdd = function(){
    if(isEven){
        return isEven();
    } else {
        return false;
    }       
};
var isEven = function (){
    return true;
};

console.log(isOdd());

Эти ответы неверны по определению.

Число - это целое число и число с плавающей точкой.

Все представленные ответы хороши для целых чисел.

Вот правильные ответы.

function isEven(n) { // covers all
    return (n).toString(2).endsWith(‘0’) // binary format
}

function isEven_integer(n) {
    return (n & 1) === 0;
}

function isEven_float(n) {
    // floats only, but works on integers.// faster for floats
    return ((n).toString()[(n).toString().length-1] % 2) === 0; // base 10
}
 var isOdd = function(n)
{
    if(n%2 !== 0)
    { return ("odd");}
};    

var isEven = function (n)
{
 return !isOdd(n);
};

console.log(isEven(8));
Другие вопросы по тегам