Самый короткий способ проверить идеальную площадь?
Возможный дубликат:
Какой хороший алгоритм определить, является ли вход идеальным квадратом?
Я хочу Самый короткий и простой способ проверить число - это идеальный квадрат в С#
Некоторые из идеальных квадратов:
1, 4, 9, 16, 25, 36, 49, 64, 81, 100, ......
Ответы
Ответ 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;
}