我正在尝试编写一个 if 语句来检查用户输入数组的数字数量是否是完美的正方形(4、9、25、36...)。
if(array.length != Math.sqrt(array))
我知道这是不正确的,我知道这可能很容易,但我似乎无法理解如何考虑 if 语句来查看我的数组是否是一个完美平方的数字。
任何帮助表示赞赏,谢谢。
我正在尝试编写一个 if 语句来检查用户输入数组的数字数量是否是完美的正方形(4、9、25、36...)。
if(array.length != Math.sqrt(array))
我知道这是不正确的,我知道这可能很容易,但我似乎无法理解如何考虑 if 语句来查看我的数组是否是一个完美平方的数字。
任何帮助表示赞赏,谢谢。
尝试这个:
int root = (int)Math.sqrt(array.length);
boolean isSquare = root * root == array.length;
或者
if ((int)Math.sqrt(array.length) == Math.sqrt(array.length))
还有其他方法,但它们都使用平方根应该是整数的事实。
其他语言也有类似的答案,但这个算法应该适用于你正在做的事情:
bool IsPerfectSquare(long input)
{
long SquareRoot = (long) Math.Sqrt(input);
return ((SquareRoot * SquareRoot) == input);
}
有关更多信息,请参阅此链接: