问题描述:
A square of squares
You like building blocks. You especially like building blocks that are squares. And what you even like more, is to arrange them into a square of square building blocks!
However, sometimes, you can't arrange them into a square. Instead, you end up with an ordinary rectangle! Those blasted things! If you just had a way to know, whether you're currently working in vain… Wait! That's it! You just have to check if your number of building blocks is a perfect square.
Task
Given an integral number, determine if it's a square number:
In mathematics, a square number or perfect square is an integer that is the square of an integer; in other words, it is the product of some integer with itself.
The tests will always use some integral number, so don't worry about that in dynamic typed languages.
Examples:
isSquare(-1) returns false
isSquare(0) returns true
isSquare(3) returns false
isSquare(4) returns true
isSquare(25) returns true
isSquare(26) returns false
代码实现:
#codewars第四题
import math
def is_square(n):
if n >= 0 and math.sqrt(n) == math.floor(math.sqrt(n)): #floor向下圆整
return True
else:
return False
#第二中解法
import math
def is_square(n):
return n > -1 and math.sqrt(n) % 1 == 0; #巧妙的除1取余 整数求余必为0 非整数求余不为0
is_square(26)