31 lines
832 B
Swift
31 lines
832 B
Swift
//
|
|
// Created by Huang on 2021/9/30.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class Solution {
|
|
|
|
func mySqrt(_ x: Int) -> Int {
|
|
let x_half = 0.5 * Double(x)
|
|
var i: UInt64 = Double(x).bitPattern
|
|
i = 0x5FE6EC85E7DE30DA - (i >> 1)
|
|
var f: Double = Double.init(bitPattern: i)
|
|
f = f * (1.5 - x_half * f * f)
|
|
f = f * (1.5 - x_half * f * f)
|
|
f = f * (1.5 - x_half * f * f)
|
|
return Int(1.0 / f)
|
|
}
|
|
|
|
/**
|
|
1486. 数组异或操作
|
|
- Parameters:
|
|
- n: 数量
|
|
- start: 起点
|
|
- Returns: 数组异或操作结果
|
|
*/
|
|
func xorOperation(_ n: Int, _ start: Int) -> Int {
|
|
return (start & 3) < 2 ? ((n & 1) == 0) ? (n & 3) : (start + 2 * n - 3 + (n & 3)) : ((n & 1) == 0) ? ((start + (n - 1) * 2) ^ (start - 2 + (n & 3))) : (start + 1 - (n & 3))
|
|
}
|
|
}
|