【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)) }