bigbigli_大大李

斐波那契数列(公兔子掳母兔子问题)

从前有座山,叫三女山,山上也不知从哪来了只公兔子,在山上生活一个月后,这只兔子觉得自己的生活着实无聊,于是去山下掳了一只母兔子回来生活,母兔子一开始对他并不感冒,但日久生情,俩兔产生了感情,一个月后生了只小公兔子,再一个月后,这个小公兔子觉得父母太相爱,不管自己,于是学着老爹也去山下掳了只小母兔子回来,在小兔子掳来小母兔子的同时,小公兔子的父母又生下了一只二号小公兔子,再一个月后,小公兔子与掳来的小母兔子也生下了小小公兔子,二号小公兔子也带回来了只二号小母兔子,同时父母又生了一只小公兔子... ...周而复始,山上的兔子从第一个月到最后,分别是1,2,3,5,8,13,21,34... ...
但是由于,山上兔子太多,作为祖先的公兔子由于太过劳累只活了n个月便死亡了,在祖先兔子死之前的一个月,山上有多少只兔子?

#include <iostream>
using namespace std;
int f[1001];
int main()
{
	int n;
	cin >> n;
      //第一个月只有那只公兔子
	f[1]=1;
      //第二个月公兔子掳来了母兔子一共俩兔子
	f[2]=2;
      //从第三个月开始,到祖先兔子死前一个月
	for(int i=3;i<=n-1;i++)
	{
      //从第三个月开始,山上兔子的总和为前一个月跟前前一个月兔子数量之和(斐波那契数列)
		f[i] = f[i-1]+f[i-2];
	}
	cout << f[n-1];
	return 0;
}

提醒:千万不要像兔子祖先那样过度劳累

原创题目,转载请私信

posted @ 2020-07-08 16:20  bigbigli  阅读(1391)  评论(0编辑  收藏  举报