兔子产子问题
Posted 618zyk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了兔子产子问题相关的知识,希望对你有一定的参考价值。
有一对兔子,从出生后的第三个月起每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子,假设所有兔子都不死,问30个月内每个月的兔子总数有多少?
通过分析可知每个月兔子的总数为1,1,2,3,5,8,13......由规律可知,从第三个月开始,本月的兔子数为前俩个月的兔子数之和,这样我们就可以通过将前俩个月兔子数量相加的手段来得到本月兔子数量,最后将前30月的数据 打印。
#include<iostream>
using namespace std;
int main()
int rabbit1=1,rabbit2=1,rnumber;//rabbit1表示前一个月的兔子数量,rumber表示兔子总数
cout<<"第1个月的兔子数量为:"<<rabbit1<<"只"<<endl;
cout<<"第2个月的兔子数量为:"<<rabbit2<<"只"<<endl;
for(int i=3;i<=30;i++)//i表示月数,从第3个月到第30个月
rnumber=rabbit1+rabbit2;
cout<<"第"<<i<<"个月的兔子数量为:"<<rnumber<<"只"<<endl;
rabbit2=rabbit1;
rabbit1=rnumber;
return 0;
运行结果如下:
兔子产子
从前有一对长寿的兔子,他们每一个月生出一对小兔子。第一个月新生产的兔子两个月就长大了,在第三个月初開始生他们的下一代小兔子,这样一代一代的生下去,不考虑兔子的寿命,求第n个月出生多少对小兔子
简单演示样例:
比方输入1,第一个月出生的兔子仅仅有一对。所以输出为1
比方输入2,第二个月出生的兔子仅仅有一对。所以输出为1
比方输出为3。则该月份有两对兔子出生,则输出为2
要求:
实现下面接口:
输入一个正整数。表示第几个月,输出该月份生产出的小兔子的对数
调用者会保证:
输入的月份与生产的兔子数目都为unsigned int 能表达的数字
斐波纳契数列原型问题.
unsigned int GetBirthRabbitNum(unsigned int nValue1) { if(nValue1==1||nValue1==2) return 1; if(nValue1>2) return GetBirthRabbitNum(nValue1-1)+GetBirthRabbitNum(nValue1-2); }
以上是关于兔子产子问题的主要内容,如果未能解决你的问题,请参考以下文章