docs: 递归 上台阶算法

This commit is contained in:
Shikong 2021-09-24 01:04:44 +08:00
parent 9a0408f6cc
commit e142f1f224
2 changed files with 35 additions and 1 deletions

View File

@ -0,0 +1,35 @@
package main
import "fmt"
// 递归
// 计算 n 的阶乘 n!
// 3! = 3 * 2 * 1
// 4! = 4 * 3 * 2 * 1
// 5! = 5 * 4 * 3 * 2 * 1
func factorial(n int) int {
if n > 0 {
return n * factorial(n-1)
}
return 1
}
// 上台阶
// n个台阶 一次走 1 或 2 步, 共 多少种走法
func computed(n uint64) uint64 {
if n == 1 {
return 1
}
if n == 2 {
return 2
}
return computed(n-1) + computed(n-2)
}
func main() {
n := 5
fmt.Printf("%d 的阶乘为 : %d\n", n, factorial(n))
n = 4
fmt.Printf("%d 个台阶 共有 : %d种走法\n", n, computed(uint64(n)))
}

View File

@ -48,5 +48,4 @@ func main() {
mf3(f4(2, 2))
fmt.Printf("f4: %T\n", f4)
}