1、题目
古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
2、问题分析
本来没想记录这道题的,谁成想打开【C语言经典100例-第一篇博客】才发现,这道题没写,好家伙,直接给我整尬住了。那言归正传,想必都已将了解这个题目了,这到题的关键是分析出它体现的是斐波那契数列,那这道题就好写了,但前提是要了解什么是斐波那契数列,可以看一下往期的博客【斐波那契数列博客】,这道题分析如下:
箭头上的蓝色数字代表月份,箭头指向的数字代表当前兔子的对数,分析到这一步大概知道这是斐波那契数列了,接下来就是实现代码了。
3、代码展示
#include<iostream>
using namespace std;
int Fib(int n)
{
int z = 1;
if (n == 1 || n == 2)
return 1;
else
{
z = Fib(n - 1) + Fib(n - 2);
return z;
}
}
int main()
{
int Fib(int n);
int sum=0,n;
cin >> n;
sum=Fib(n);
cout << "sum = "<<sum << endl;
return 0;
}
总结
在实现代码之前,思路不怎么清晰,就先别动手,把思路差不多理清楚了在动手,会更好写。