mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-02-23 23:42:15 +08:00
36 lines
573 B
Go
36 lines
573 B
Go
|
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)))
|
||
|
}
|