|
@@ -0,0 +1,43 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import "fmt"
|
|
|
+
|
|
|
+func main() {
|
|
|
+ var n int
|
|
|
+
|
|
|
+ n = 1
|
|
|
+ fmt.Println(climbStairs(n))
|
|
|
+
|
|
|
+ n = 2
|
|
|
+ fmt.Println(climbStairs(n))
|
|
|
+
|
|
|
+ n = 3
|
|
|
+ fmt.Println(climbStairs(n))
|
|
|
+
|
|
|
+ n = 4
|
|
|
+ fmt.Println(climbStairs(n))
|
|
|
+
|
|
|
+ n = 5
|
|
|
+ fmt.Println(climbStairs(n))
|
|
|
+
|
|
|
+ n = 6
|
|
|
+ fmt.Println(climbStairs(n))
|
|
|
+}
|
|
|
+
|
|
|
+// 利用动态规划来解决该问题
|
|
|
+func climbStairs(n int) int {
|
|
|
+ if n == 1 {
|
|
|
+ return 1
|
|
|
+ }
|
|
|
+ if n == 2 {
|
|
|
+ return 2
|
|
|
+ }
|
|
|
+ var dp = make([]int, n+1)
|
|
|
+ dp[0] = 0
|
|
|
+ dp[1] = 1
|
|
|
+ dp[2] = 2
|
|
|
+ for i := 3; i <= n; i++ {
|
|
|
+ dp[i] = dp[i-1] + dp[i-2]
|
|
|
+ }
|
|
|
+ return dp[n]
|
|
|
+}
|