最简单的方法来检查完美的广场?

可能重复:
什么是一个很好的算法来确定输入是否是一个完美的正方形?

我想要最简单最简单的方法来检查一个数字是完美的C#

一些完美的广场:

1, 4, 9, 16, 25, 36, 49, 64, 81, 100, ......

可能检查数字的平方根是否有小数部分,或者是否是整数。

在实施方面,我会考虑这样的事情:

double result = Math.Sqrt(numberToCheck);
bool isSquare = result%1 == 0;

isSquare现在对于所有方块都是true对于其他所有方块都是false的。


这是检查平方根是否是整数的变体:

bool IsPerfectSquare(double input)
{
    var sqrt = Math.Sqrt(input);
    return Math.Abs(Math.Ceiling(sqrt) - Math.Floor(sqrt)) < Double.Epsilon;
}

Math.Ceiling将四舍五入到下一个整数,而Math.Floor将舍入。 如果它们是相同的,那么你有一个整数!

这也可以写成一个oneliner:

if (int(Math.Ceiling(Math.Sqrt(n))) == int(Math.Floor(Math.Sqrt(n)))) /* do something */;

    public bool IsPerferctSquare(uint number)
    {
        return (Math.Sqrt(number) % 1 == 0);
    }
链接地址: http://www.djcxy.com/p/86607.html

上一篇: Shortest way to check perfect Square?

下一篇: Determining whether a number is a Fibonacci number