0

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

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

我知道这是不正确的,我知道这可能很容易,但我似乎无法理解如何考虑 if 语句来查看我的数组是否是一个完美平方的数字。

任何帮助表示赞赏,谢谢。

4

2 回答 2

2

尝试这个:

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

或者

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

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

于 2016-03-17T00:57:31.653 回答
0

其他语言也有类似的答案,但这个算法应该适用于你正在做的事情:

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

有关更多信息,请参阅此链接:

确定输入是否是完美正方形的好算法是什么?

于 2016-03-17T01:03:51.307 回答