package main

import "fmt"

// faktorial menghitung nilai faktorial dari n secara rekursif.
func faktorial(n int) int {
	if n <= 1 {
		return 1 // base case: rekursif berhenti di sini.
	}
	return n * faktorial(n-1)
}

// fibonacci menghitung bilangan Fibonacci ke-n secara naif.
func fibonacci(n int) int {
	if n <= 1 {
		return n // base case: F(0)=0 dan F(1)=1.
	}
	return fibonacci(n-1) + fibonacci(n-2)
}

func main() {
	fmt.Println("faktorial(5) =", faktorial(5))
	fmt.Println("faktorial(0) =", faktorial(0))

	for i := range 8 {
		fmt.Printf("fibonacci(%d) = %d\n", i, fibonacci(i))
	}

	fmt.Println("fibonacci(25) =", fibonacci(25))
}
