检查阵列长度是否是完美的正方形

时间:2016-03-17 00:52:19

标签: java arrays perfect-square

我正在尝试编写一个if语句来检查用户输入数组的数字量是否是一个完美的正方形(4,9,25,36 ......)。

params[:controller] => 'admin/users'
controller_name => 'users'

我知道这不是正确的,我知道这可能很容易,但我似乎无法想到if语句,看看我的数组是否是一个完美的数字广场。

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

试试这个:

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

if ((int)Math.sqrt(array.length) == Math.sqrt(array.length))

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

答案 1 :(得分:0)

其他语言也有类似的答案,但这个算法应该与您正在做的事情一起使用:

bool IsPerfectSquare(long input)
{
    long SquareRoot = (long) Math.Sqrt(input);
    return ((SquareRoot * SquareRoot) == input);
}

请参阅此链接以获取更多信息:

What's a good algorithm to determine if an input is a perfect square?

相关问题