检查数字是否可以被 JS 中的另一个数字整除

问题描述

我对这个东西很陌生,我正在解决一系列问题,但我已经迷失在这个问题上。

我必须验证一个数是否可​​以被另一个数整除,答案必须是对还是错。

我得到了他的

function solucao(numero,x) {
    
    solucao(numero % x); 
    
    if (solucao === 0)  {
        resultado = true;
        
    }else{
        resultado = false;
    }
            
}

但是我收到运行时错误并且看不到缺少什么。

解决方法

所以你想检查一个数字 numero 是否能被 x 整除。模运算符可以提供帮助。试试这个:

function solucao(numero,x){
    if (numero % x == 0){
        return true
    }
    else {
        return false
    }
}

,
function solucao(numero,x) {
    
    let resultado;
    
    if (numero % x === 0)  {
        resultado = true;
        
    }else{
        resultado = false;
    }
            return resultado;
}

我认为您在某些时候会感到困惑。您正在调用该函数,在其内部。你应该这样做,并声明结果变量。

,

我相信这会有所帮助:

    function checkIfDivided(){
// in this section the variables come from an html document
            var number=parseInt(document.getElementById("number").value);
             var divisor=parseInt(document.getElementById("divisor").value);
            if(number%divisor==0)
              return true;
            else return false;
    }


or



    function checkIfDivided(number,divisor){
//in the function the variable are given as parameters
            if(number%divisor==0)
              return true;
            else return false;

    }

,

在我看来有两件事:

  1. 您尚未声明您的 'resultado' 变量(这可以很简单,只需键入不带单引号的 'let resultado;'

  2. 您没有在 if/else 语句之后返回您的 'resultado' 变量

现在,您的函数正在使用一个未声明的变量并且不返回任何内容,所以这就是您收到错误的原因。解决以上两个步骤,你应该很好! :)

,

您清楚地了解模数运算符是要走的路。使用它我们发现 12 可以被 3 整除,因为 12 % 3 返回零。零被认为是“假”值,而任何其他数字都被认为是“真”值。

鉴于此,如果 12 % 3 返回“falsey”值(零),我们不能直接使用结果。但是,如果我们可以将假“翻转”为真呢?我们可以使用 not 运算符 (!)。

对数学问题的结果使用 ! 运算符需要在数学问题本身周围使用括号。

所以代码中的问题变成了 (12 % 3) 并用 ! 运算符“翻转”它成为

!(12 % 3)

下面证明了这一点:

  1. console.log(!(12 % 3)) --> 记录为真
  2. console.log(!(12 % 5)) --> 记录错误

它的功能实现很简单,也得到了验证:

  1. console.log(isDivisible(12,3)); --> 记录为真
  2. console.log(isDivisible(12,5)); --> 记录错误

console.log(!(12 % 3))
console.log(!(12 % 5))

function isDivisible(number,x){
 return !(number % x);
}
 
console.log(isDivisible(12,3));
console.log(isDivisible(12,5));

,

还有另一种方法可以做到这一点,我认为它更简洁。

console.log(Number.isInteger(10/2)) //true
console.log(Number.isInteger(4/2)) // false

//a must be greater than b
function check(a,b) {
 console.log(Number.isInteger(a/b))
 return Number.isInteger(a/b)
}

check(10,5)//true
check(8,3)//false