【Go】走台阶
问题:有N个台阶,每次可以走一个台阶也可以走两个台阶,请问有多少种走法?
package main
import "fmt"
func step(n uint) uint {
if n < 1 {
return 0
} else if n == 1 {
return 1
} else if n == 2 {
return 2
} else {
// 1. 先走1步,则剩下n-1个台阶,那么问题变为走完n-1个台阶有多少种走法。
// 2. 先走2步,则剩下n-2个台阶,那么问题变为走完n-2个台阶有多少种走法。
// 3. 上面两种情况相加,就是走完n个台阶的走法。
return step(n-1) + step(n-2)
}
}
func main() {
fmt.Println(step(5))
}
浙公网安备 33010602011771号