// harmonic value of N = (1 + 1/2 + 1/3 + ... 1/N)
package main
import (
"fmt"
)
func getHarmonicValue(n int) float64 {
hv := 0.0
for i := 1; i <= n; i++ {
hv += 1.0 / float64(i)
}
return hv
}
func getHarmonicValueRecursion(n int) float64 {
if n == 1 {
return 1.0
} else {
return 1.0/float64(n) + getHarmonicValueRecursion(n-1)
}
}
func main() {
n := 6
fmt.Println("Harmonic value: ", getHarmonicValue(n))
fmt.Println("Harmonic value: ", getHarmonicValueRecursion(n))
}
/*
run:
Harmonic value: 2.4499999999999997
Harmonic value: 2.4499999999999997
*/