编程题——统计每个月兔子的总数


编程题——统计每个月兔子的总数


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

输入描述:
输入int型表示month

输出描述:
输出兔子总数int型

示例:
输入
9
输出
34


程序代码如下:



#include 
using namespace std;

/*这道题实际上是斐波那契数列
 *第n个月的兔子数可分为两部分:
 *	第一部分是上个月已经有的兔子数,即f(n-1)
 *	第二部分就是新生的兔子数,那么就应该是在第n月时已经满三个月的兔子数,即f(n-2)
 *分析完毕,代码就很简单了*/

int getNum(int n)
{
     
	int ret,f1 = 1, f2 = 1; //前两个月都是一只
	for (int i = 3; i <= n;++i) //从第三个月开始到第n月
	{
     
		ret = f1 + f2;
		f1 = f2;
		f2 = ret;
	}
	return ret;
}

int main()
{
     
	int n;
	while (cin >> n)
		cout << getNum(n) << endl;
	return 0;
}


程序运行结果如下:


编程题——统计每个月兔子的总数_第1张图片

你可能感兴趣的:(算法,编程题de世界,斐波那契数列,生兔子)