题解 | #统计每个月兔子的总数#

统计每个月兔子的总数

https://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395

package main

import (
    "fmt"
)

func calculateRabbit(n int) int {
    // 本质是斐波那契数列
    // dp[i]: 标识第 i 个月的兔子数量
    // 第 n 个月的兔子数量为
    //     1. 上个月的 dp[n-1]只兔子
    //     2. 上上个月的 dp[n-2]只兔子,每只会生出一个小兔子
    dp := make([]int, n+1)
    
    for i:=0; i<=n; i++ {
        if i <= 2 {
            dp[i] = 1
        } else {
            dp[i] = dp[i-1] + dp[i-2]
        }
    }

    return dp[n]
}

func main() {
    var n int
    fmt.Scan(&n)
    fmt.Println(calculateRabbit(n))
}
// 本题输入一个数字,所以采用 fmt.Scan(&n)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务