可能重复:
确定整数的平方根是否为整数的最快方法
有人知道逻辑找出一个数字是完美的正方形吗?(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进行比较.