任何人都知道逻辑找出一个数字是完美的正方形还是没有?

Dor*_*eka 12 c#

可能重复:
确定整数的平方根是否为整数的最快方法

有人知道逻辑找出一个数字是完美的正方形吗?(Other than Newtons Method or Synthetic Division Method)

For Eg:- 4, 16, 36, 64 are Perfect Squares.
Run Code Online (Sandbox Code Playgroud)

我将提供输入441,逻辑应该说它是否是完美广场.

这是亚马逊访谈中提出的一个问题.

我想用任何内置函数来完成它

Hen*_*rik 18

没有Math.Sqrt,甚至没有乘法:

    static bool IsSquare(int n)
    {
        int i = 1;
        for (; ; )
        {
            if (n < 0)
                return false;
            if (n == 0)
                return true;
            n -= i;
            i += 2;
        }
    }
Run Code Online (Sandbox Code Playgroud)

注意,正方形是奇数整数的部分和.i取值1,3,5,7 ......部分和1,1 + 3 = 4,1 + 3 + 5 = 9,...是正方形.因此,在n -= i我们从原始值中减去平方后n,我们可以将结果与0进行比较.