免责声明:最近面试,这是遇到的一个面试题。现从网上找了一下题目描述,参考了斐波纳契数列的C语言实现。不敢写原创,但又是自己实现的。写个转载比较合适。
尊重别人的成果!
已知一对兔子每个月可以生一对小兔,而小兔过一个月后也可生一对小兔.即兔子的对数是:第一个月1对,第二个月1对,第三个月2对,第四个月3对,第五个月5对,依次类推,问第N个月有多少对兔子?
解析:这是斐波纳契数列,A(n)=A(n-1)+A(n-2), n>=2
用C语言实现:
int fun(int n)
{
if(n<1)
{
return -1;
}
else if(1==n || 2==n)
{
return 1;
}
else
{
return fun(n-1) + fun(n-2);
}
}
void main()
{
int n = 0;
printf("please input n:");
scanf("%d",&n);
int num = fun(n);
printf("%d \n",num);
}