您的位置:首页 > 其它

训练3 习题11

2016-05-23 17:54 169 查看
思路:

[align=left]Problem Description[/align]
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。<br>其中,蜂房的结构如下所示。<br><img src=../data/images/C40-1001-1.jpg><br>
 

[align=left]Input[/align]
输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。<br>
 

[align=left]Output[/align]
对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。<br>
 

[align=left]Sample Input[/align]

2
1 2
3 6

 

[align=left]Sample Output[/align]

1
3

思路  :找出递推规律 a[i]=a[i-1]+a[i-2](从第四项开始递推

      记住 别用int类型

      老师别嫌做的快



代码如下:

#include<cstdio>

using namespace std;

double a[50];   //代表两数差

int main()

{

   a[0]=1,a[1]=1,a[2]=2;

   int T,n1,n2;

    scanf("%d",&T);

   while(T--)

  {

    double tep=0;

     scanf("%d %d",&n1,&n2);

     if(n2-n1<=0)

     tep=a[0];

     else if(n2-n1==1)

     tep=a[1];

     else if(n2-n1==2)

     tep=a[2];

     else{

         int i;

     for(i=3;i<=n2-n1;i++)

     {

         a[i]=a[i-1]+a[i-2];

     }

     tep=a[i-1];

     }

     printf("%.0lf\n",tep);

  }

  return 0;

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