题目大意:有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。





解题思路:1)每到一个点的路径数肯定等于它左边和左下方(左上方)的路径之和。
              2)设从a走到b之间一共走n步,则有:
                   dp[n]=dp[n-1]+dp[n-2]; dp[n-1]=dp[n-2]+dp[n-3]..............

                又是斐波那契数列~~.....
                         最近迷上切水题~哎~

代码
 1 #include  < iostream >
 2 #include  < cstdio >
 3 #include  < cmath >
 4
 5 using   namespace  std;
 6
 7 long   long  a[ 55 ];
 8 int  T,n,m;
 9
10 int  main()
11 {    a[0]=0;
12     a[1]=1;
13     a[2]=2;
14     for (int i=3; i<=50; i++)
15     {
16          a[i]=a[i-1]+a[i-2];
17     }

18     cin >> T;
19     while (T--)
20     {
21         cin >> n >> m;
22         cout << a[m-n] << endl;
23     }

24     return 0;
25}

26