您的位置:首页 > 其它

兔子问题

2011-04-25 18:45 267 查看
兔子

描述

兔子具有很强的繁殖能力。一对成年兔子每个月可以繁殖一对小兔子,而一对小兔子经过m个月之后,就会长成一对成年兔子。通过分析,我们可以看出:若m=2的时候,每个月兔子的对数构成了一个Fibonacci数列。

但是,若m<>2,这个问题看起来就不那么简单了。你的任务是计算:假定初始只有一对兔子,那么,经过d个月之后,共有多少对兔子?可以假定,在此阶段没有任何兔子死亡。

输入

输入包括多组测试数据。每组测试数据的一行中包括2个整数m(1<=m<=10),d(1<=d<=30)。当测试数据遇到一行中有两个0时,即m=d=0,测试数据结束。

输出

针对每组测试数据,在每一行输出经过d个月后共有多少对兔子。

样例输入

2 3

3 5

0 0

样例输出

5

9

 

#include<stdio.h>

int main()

{

 long N,T,s[20],i,j,sum;

 while(scanf("%ld",&N)!=EOF)

 {  

  scanf("%ld",&T);

  for(i=0;i<N;i++)

   s[i]=0;

  s
=1;

  for(i=0;i<=T;i++)

  {

   sum=0;

   for(j=N;j>=0;j--)

   {

    sum+=s[j];

   }

   s
+=s[N-1];

   for(j=N-1;j>0;j--)

    s[j]=s[j-1];

   s[0]=s
;

  }

  printf("%ld\n",sum);

 }

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐