package main
import (
"fmt"
)
func factorial(n int) int {
if n <= 0 {
return 1
}
return n * factorial(n - 1)
}
func main() {
fmt.Println(factorial(5))
}
/* lifecyle factorial
5 * factorial(4)
5 * 4 * factorial(3)
5 * 4 * 3 * factorial(2)
5 * 4 * 3 * 2 * factorial(1)
5 * 4 * 3 * 2 * 1 * factorial(0)
5 * 4 * 3 * 2 * 1 * 1
output: 120 (result factorial 5)
*/