zoukankan      html  css  js  c++  java
  • 2_兔子产仔问题

    题目

    如果一对两月大的兔子以后每个月都能生一对小兔子,而一对新生的兔子出生两个月后才可以生小兔子。也就是说,1月份出生,3月份才可以产仔。那么假定一年内没有产生兔子死亡事件,那么一年后共有多少对兔子?

    分析

    我们先来分析一下兔子产仔问题,逐月来看每月的兔子数量:

    第一个月: 1对
    第二个月: 1对
    第三个月: 2对
    第四个月: 3对
    第五个月: 5对

    从上面可以看出,从第三个月开始,每个月的兔子总对数,等于前两个月兔子对数的总和。

    显然的斐波那契数列,也是递推法的典型问题。

    第n个月兔子总量: Fn=Fn2+Fn1
    这里,初始第一个兔子F1=1, 第二个月兔子F2=1

    代码

    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int Fibonacci(int n)
    {
        if (n == 1 || n == 2)
            return 1;
        else
            return Fibonacci(n - 1) + Fibonacci(n - 2);
    }
    
    int main()
    {
        cout << "递推法求兔子产仔问题,请输入月份:" << endl;
        int n;
        while (cin >> n)
        {
            cout << n << "月后,兔子有:" << Fibonacci(n) << "对。" << endl;
        }
    
        system("pause");
        return 0;
    }

    GitHub源码下载

  • 相关阅读:
    规划分类
    java 命名空间
    何为"IOE"、"去IOE"
    vSphere 6.7 新特性 — 基于虚拟化的安全 (VBS)
    RHCE
    VCPU的解释
    VMware vSphere学习整理
    Vmware
    Linux启动
    Linux相关笔记
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214876.html
Copyright © 2011-2022 走看看