Swift 3 - 查找数字是否为完美正方形



我想知道是否有办法在 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

最新更新