斐波那契数列之兔子生子问题(C/C++)

阅读: 评论:0

斐波那契数列之兔子生子问题(C/C++)

斐波那契数列之兔子生子问题(C/C++)

斐波那契数列详细描述:见

        斐波那契数列

问题描述:

兔子生子问题是一个经典的数学问题,用于演示斐波那契数列的应用。问题描述如下:

假设有一对小兔子,从第三个月开始,每个月可以生一对小兔子。
新生的小兔子也要从第三个月开始,每个月可以生一对小兔子。
假设所有兔子都不死去,问经过n个月后,共有多少对兔子?

        

思路:

理一下思路:
    因为从第3个月开始才每个月生1对兔子
    所以
    第1个月结束的时候只有1对兔子(未满3个月,不能生殖)
    第2个月结束的时候只有1对兔子(未满3个月,不能生殖)
    第3个月结束的时候就有2对兔子(原来的一对小兔子可以生出一对小兔子,所以共有两对小兔子)
    第4个月结束的时候就有3对兔子(原来的一对小兔子和新生的一对小兔子都可以生出一对小兔子,所以共有三对小兔子)
    第5个月结束的时候就有5对兔子(原来的二对小兔子和新生的一对小兔子都可以生出一对小兔子,所以共有五对小兔子)
    第6个月结束的时候就有8对兔子(原来的三对小兔子和新生的一对小兔子都可以生出一对小兔子,所以共有八对小兔子)
    以此类推
这不就符合斐波那契数列的性质吗?
    从第3项开始,每项是前两项之和

函数实现

int rabbitBorn(int n){ //n:第n个月 int f0 = 1;//第一个月有1对兔子 int f1 = 1;//第二个月还是一对兔子 if(n < 3){return f0; }for(int i = 3;i <= n;i++){int sum = f0 + f1;f0 = f1;f1 = sum;}return f1;
}

代码实现

#include<iostream>
using namespace std;
int rabbitBorn(int n){ //n:第n个月 int f0 = 1;//第一个月有1对兔子 int f1 = 1;//第二个月还是一对兔子 if(n < 3){return f0; }for(int i = 3;i <= n;i++){int sum = f0 + f1;f0 = f1;f1 = sum;}return f1;
}int main(){int n;cout << "请输入要知道的月份的兔子对数:";cin >> n;cout << n << "月份的兔子对数为:";cout << rabbitBorn(n) << "对" << endl;system("pause");
return 0;
}

本文发布于:2024-02-04 16:15:07,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170711418857119.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数列   兔子
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23