zoukankan      html  css  js  c++  java
  • 兔子生兔子问题

    问题描述:

    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少

    分析:

    这道题我们可以把兔子分为三个阶段,幼崽、成年,生育

    • 幼崽:出生的第一个月
    • 成年:出生的第二个月
    • 生育:出生的第三个月
    实际月份 幼崽数量 成兔数量 兔子总数
    1 1 0 1
    2 0 1 1
    3 1 1 2
    4 1 2 3
    5 2 3 5
    6 3 5 8
    7 5 8 13
    8 8 13 21
    9 13 21 34

    从这个表格看出来,这道题是斐波那契数列的典型代表

    斐波那契数列:

    F(n) = F(n-1) + F(n-2)

    由图可以看出斐波那契数列的时间复杂度为O(2^N)

    算出总数:

    package main
    
    import "fmt"
    
    func main() {
        month := 9
    
        countSlice := make([]int, month)
        for i := 0; i < month; i++ {
            if i == 0 || i == 1 {
                countSlice[i] = 1
            } else {
                countSlice[i] = countSlice[i-1] + countSlice[i-2]
            }
            fmt.Printf("第%d个月的兔子总数为:%d
    ", i+1, countSlice[i])
        }
    }
    还在找我的道
  • 相关阅读:
    avuex
    vue与avuex
    前端上班第十天
    echarts使用心得
    json转化技巧
    前端上班第一天
    声明函数的提升,声明变量与声明函数之间的区别有什么
    王屋山黑加仑
    微信小程序1
    js-基础
  • 原文地址:https://www.cnblogs.com/TimLiuDream/p/9902084.html
Copyright © 2011-2022 走看看