// harmonic value of N = (1 + 1/2 + 1/3 + ... 1/N)
fun getHarmonicValue(n: Int): Double {
var hv = 0.0
for (i in 1..n) {
hv += 1.0 / i
}
return hv
}
fun getHarmonicValueRecursion(n: Int): Double {
return if (n == 1) 1.0 else 1.0 / n + getHarmonicValueRecursion(n - 1)
}
fun main() {
val n = 6
println("Harmonic value: ${ getHarmonicValue(n) }")
println("Harmonic value: ${ getHarmonicValueRecursion(n) }")
}
/*
run:
Harmonic value: 2.4499999999999997
Harmonic value: 2.4499999999999997
*/