判断一个自然数是否是某个数的平方
C# codes:
namespace MyNameSpace
{
class MyClass
{
static void Main()
{
System.Console.WriteLine(new MyClass().Judge(1000010000));
System.Console.ReadKey();
}
public bool Judge(int num)
{
int min = 1;
if (num < 0)
{
return false;
}
else if (num == 0 || num == 1)
{
return true;
}
else
{
int current = 2;
while (true)
{
if (current * current < num)
{
min = current;
current = min * 2;
}
else if (current * current == num)
{
return true;
}
else if (current > min + 1)
{
current = ((min + current) - (min + current) % 2) / 2;
}
else
{
return false;
}
}
}
}
}
}