Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查数组长度是否为完美正方形_Java_Arrays_Perfect Square - Fatal编程技术网

Java 检查数组长度是否为完美正方形

Java 检查数组长度是否为完美正方形,java,arrays,perfect-square,Java,Arrays,Perfect Square,我试图写一个if语句来检查用户输入到数组中的数字量是否是一个完美的正方形(4,9,25,36…) 我知道这是不正确的,我知道这可能很简单,但我似乎不知道如何使用if语句来判断我的数组是否是一个完美的平方数 非常感谢您的帮助。试试这个: int root = (int)Math.sqrt(array.length); boolean isSquare = root * root == array.length; 或 还有其他方法,但它们都会采用平方根应该是整数的事实。试试这个: int root

我试图写一个if语句来检查用户输入到数组中的数字量是否是一个完美的正方形(4,9,25,36…)

我知道这是不正确的,我知道这可能很简单,但我似乎不知道如何使用if语句来判断我的数组是否是一个完美的平方数

非常感谢您的帮助。

试试这个:

int root = (int)Math.sqrt(array.length);
boolean isSquare = root * root == array.length;

还有其他方法,但它们都会采用平方根应该是整数的事实。

试试这个:

int root = (int)Math.sqrt(array.length);
boolean isSquare = root * root == array.length;


还有其他方法,但它们都会利用平方根应该是一个整数的事实。

其他语言也有类似的答案,但这种算法应该适用于您所做的工作:

bool IsPerfectSquare(long input)
{
    long SquareRoot = (long) Math.Sqrt(input);
    return ((SquareRoot * SquareRoot) == input);
}
有关更多信息,请参阅此链接:


其他语言也有类似的答案,但此算法应适用于您正在执行的操作:

bool IsPerfectSquare(long input)
{
    long SquareRoot = (long) Math.Sqrt(input);
    return ((SquareRoot * SquareRoot) == input);
}
有关更多信息,请参阅此链接:


if(issquare(array.length))将计算数组长度为正方形的值为真。if(issquare(array.length))将计算数组长度为正方形的值为真。您似乎在等式检查中输入了一个错误。@theo完全正确。谢谢你把它捡起来(现在修好了),你的平等性检查好像有一个打字错误。@theo非常正确。感谢您拿起它(现已修复)这是另一个很好的方法:这是另一个很好的方法: