Подтвердить что ты не робот

Самый короткий способ проверить идеальную площадь?

Возможный дубликат:
Какой хороший алгоритм определить, является ли вход идеальным квадратом?

Я хочу Самый короткий и простой способ проверить число - это идеальный квадрат в С#

Некоторые из идеальных квадратов:

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

Ответ 1

Вероятно, проверьте, имеет ли квадратный корень из числа десятичную часть, или если это целое число.

Взамен я бы подумал примерно так:

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

isSquare теперь должен быть true для всех квадратов, а false для всех остальных.

Ответ 2

Это вариант проверки целостности квадратного корня:

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 */;

Ответ 3

    public bool IsPerferctSquare(uint number)
    {
        return (Math.Sqrt(number) % 1 == 0);
    }

Ответ 4

public bool IsPerfectSquare(int num)
{
   int root = (int)Math.Sqrt(num);
   return (int) Math.Pow(root,2) == num;
}