How to find the harmonic value of N (1 + 1/2 + 1/3 + ... 1/N) in Go

1 Answer

0 votes
// 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

*/

 



answered Nov 2, 2024 by avibootz
...