这道题如果用递归,则略显俗了,而且空间复杂度太高。
最近练了很多动态规划的题,这一题就特别适合:
package main import ( "fmt" ) func main() { a := 0 fmt.Scan(&a) dp := []int{0, 1, 1} for i := 3; i <= a; i++ { dp = append(dp, dp[i-1]+dp[i-2]) } fmt.Printf("%d", dp[a]) }