NK
Size: a a a
NK
EK
let numberOne = 10
let numberTwo = 8
let result: Double = Double(numberOne) / Double(numberTwo)
let resultInFractional = ...
result
) имеет вид \(resultInFractional
)")S
AM
AM
v
let numberOne = 10
let numberTwo = 8
let result: Double = Double(numberOne) / Double(numberTwo)
let resultInFractional = ...
result
) имеет вид \(resultInFractional
)")AM
let numberOne = 10
let numberTwo = 8
let result: Double = Double(numberOne) / Double(numberTwo)
let resultInFractional = ...
result
) имеет вид \(resultInFractional
)")S
NK
v
S
NK
NK
typealias Rational = (num : Int, den : Int)
func rationalApproximation(of x0 : Double, withPrecision eps : Double = 1.0E-6) -> Rational {
var x = x0
var a = x.rounded(.down)
var (h1, k1, h, k) = (1, 0, Int(a), 1)
while x - a > eps * Double(k) * Double(k) {
x = 1.0/(x - a)
a = x.rounded(.down)
(h1, k1, h, k) = (h, k, h1 + Int(a) * h, k1 + Int(a) * k)
}
return (h, k)
}
NK
v
NK
NK
v
v
func findGcf(_ a: Int, _ b: Int) -> Int {
var _a = a
var _b = b
while _b != 0 {
let tmp = _a % _b;
_a = _b;
_b = tmp;
}
return _a;
}
let x = 10
let y = 8
let (q, r) = x.quotientAndRemainder(dividingBy: y)
let gcf = findGcf(r,y)
let num = r/gcf
let denom = y/gcf
print("\(q) \(num)/\(denom)")
v