携程网客栈通:一个母兔,从第四年起每年生一头母兔,问第n年有几只兔子?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/03 06:54:59
最好用C++实现
生下的也是从四年后每年生一个,而且所有的兔子全部成活

febonacci数列,可以用递归解决,这个问题可以参考,《算法设计与分析》一书

分析一下先
n:年 t:兔子总数
n=0 t=1
n=4 t=2
n=8 t=4
n=12 t=8
n=16 t=16
看出来,年份是等差数列,兔子数是等比数列
所以
t=2的(n/4)次方 (当然,要对n进行判断,是不是整4年才是)

function whatis_t(int n)
{
int a,t;
a=n%4;
if(a!=0){n=n-a;}//目的是为了求出4的倍数的年份,年份不足4的兔子是不生宝宝的:)

t=2的(n/4)次方;//伪代码,求次方函数忘记了:)自己加吧

return(t);

}

#include "stdio.h"
main()
{
int n;
print("输入几年之后");
scanf("%d",&n);
print("%d年之后能产%d只母兔\n",n,n-3);
}

我是个新手,所以就这样了,希望能行,请指导

还要考虑生下的兔子多少是母兔

n-3只
因为没说生下的母兔还要生。