我想知道是否有办法在 Swift 中查找数字是否是完美平方。我让用户输入一个数字来检查它是否是一个完美的正方形。是否有语句或函数?提前谢谢你!
尝试这样的事情:
var number = 9.0
let root = sqrt(number)
let isInteger = floor(root) == root
print("(root) is (isInteger ? "perfect" : "not perfect")")
我在这个相关问题中找到的"isInteger
"位。
编辑/更新:Swift 5.2
extension BinaryInteger {
var isPerfectSquare: Bool {
guard self >= .zero else { return false }
var sum: Self = .zero
var count: Self = .zero
var squareRoot: Self = .zero
while sum < self {
count += 2
sum += count
squareRoot += 1
}
return squareRoot * squareRoot == self
}
}
<小时 />操场
4.isPerfectSquare // true
7.isPerfectSquare // false
9.isPerfectSquare // true
(-9).isPerfectSquare // false