14 Golang递归

14 递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main

import (
"fmt"
"unsafe"
)

/*
Go语言的函数也可以递归调用
*/

// 如果返回值是一个参数则不需要带括号
// 如果是两个参数需要带括号
func Factorial(n int) int{
if n <= 1{
return 1
}
return n * Factorial(n - 1)
}

func main() {
var n = 20
fmt.Println("n的阶乘为:", Factorial(n))
fmt.Println("sizeof(n):", unsafe.Sizeof(n))
}