// harmonic value of N = (1 + 1/2 + 1/3 + ... 1/N)
func getHarmonicValue(_ n: Int) -> Double {
var hv: Double = 0.0
for i in 1...n {
hv += 1.0 / Double(i)
}
return hv
}
func getHarmonicValueRecursion(_ n: Int) -> Double {
if n == 1 {
return 1.0
} else {
return 1.0 / Double(n) + getHarmonicValueRecursion(n - 1)
}
}
let n = 6
print("Harmonic value: \(getHarmonicValue(n))")
print("Harmonic value: \(getHarmonicValueRecursion(n))")
/*
run:
Harmonic value: 2.4499999999999997
Harmonic value: 2.4499999999999997
*/