2017-06-22 99 views
-6

我该如何检查给定的数字是否与“”如果比较是“完美平方”?JavaScript比较“if”关键字

+1

1)这是一种自以为是的2)这是一个完全独立的问题 – Li357

+1

该提示返回一个字符串,所以输入可能是“你好”,在这种情况下,模数返回'NaN '。 –

+1

这是可读的(减去拼写错误)和非常标准的,所以是的,这很好。 –

回答

0

检查数字是否奇数的“最佳”方式是主观的。所显示的方式肯定会奏效。但是,在实际代码中,您需要确保记录无效的年龄,或者通过检查age % 2是否为NaN或使用类似parseInt(prompt("what is your age?"), 10)的内容,然后检查Number.isNaN中的输出。

1

假设我明白你在问什么,你可以先通过Math.sqrt请求一个数的平方根,然后在划分后得到其余的值,看看它是否等于0,在这种情况下,数字可以除以平方根,所以是一个“完美”的方

function isSquare(number) { 
 
    // get the square root of the number in question 
 
    var sqrt = Math.sqrt(number); 
 
    // check if the modulo (rest after dividing is 0) 
 
    return ((number % sqrt) === 0); 
 
} 
 

 
console.log(isSquare(9)); // true 
 
console.log(isSquare(5)); // false

要索要用户的年龄,这真的取决于你的使用情况。提示是一种可能的方式做到这一点,虽然你也可以做到这一点通过提供一种形式,它给你的HTML5输入类型number,像这样的好处:

function checkAge() { 
 
    var inputElement = document.getElementById('ageInput'), 
 
    value = parseInt(inputElement.value), 
 
    outputElement = document.getElementById('output'); 
 
    if (Number.isNaN(value)) { 
 
    output.innerHTML = '<error>Please enter a valid number</error>'; 
 
    return; 
 
    } 
 
    if (value % 2 === 0) { 
 
    output.innerHTML = 'Your age is even'; 
 
    } else { 
 
    output.innerHTML = 'Your age is odd'; 
 
    } 
 
}
error { 
 
    color: red; 
 
}
<input type="number" min="0" id="ageInput" placeholder="give in your age" /> 
 
<button type="button" onclick="checkAge()">Validate</button> 
 
<div id="output"></div>

0
if(age % Math.sqrt(age) === 0) { 
    console.log("Your age is a perfect square!"); 
} 

我找到了答案..谢谢大家(:

+1

看到你的问题接受率为0%,请阅读[this](https://stackoverflow.com/help/someone-answers)。此外,这与我提供的代码基本相同,因此无需将其添加为额外的答案 – Icepickle