我想知道是否有办法在 Swift 中找到一个数字是否是一个完美的正方形。我让用户输入一个数字来检查它是否是一个完美的正方形。有没有语句或函数?先感谢您!
问问题
1783 次
2 回答
2
编辑/更新: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
于 2017-04-09T02:14:54.423 回答
2
尝试这样的事情:
var number = 9.0
let root = sqrt(number)
let isInteger = floor(root) == root
print("\(root) is \(isInteger ? "perfect" : "not perfect")")
我在这个相关问题中找到的那个“ isInteger
”位。
于 2017-04-09T01:01:29.143 回答