天天看點

練習三1011

有一隻經過訓練的蜜蜂隻能爬向右側相鄰的蜂房,不能反向爬行。請程式設計計算蜜蜂從蜂房a爬到蜂房b的可能路線數。<br>其中,蜂房的結構如下所示。<br><img src=../data/images/C40-1001-1.jpg><br>  

Input 輸入資料的第一行是一個整數N,表示測試執行個體的個數,然後是N 行資料,每行包含兩個整數a和b(0<a<b<50)。<br>  

Output 對于每個測試執行個體,請輸出蜜蜂從蜂房a爬到蜂房b的可能路線數,每個執行個體的輸出占一行。<br> 蜂房的圖形:

練習三1011

思路:就是一個典型的斐波拉契數列,利用遞歸,先打好表後,再利用公式F(N)=F(N-1)+F(N-2)即可。 代碼:

#include<iostream>
using namespace std;
const int m=3;
int main()
{
    int a,b,n;
    long int num;
    long long int f[55];
    f[1]=1;
    f[2]=2;
    for(int i=m;i<=55;i++)
    {
        f[i]=f[i-1]+f[i-2];
    }
    cin>>n;
    while(n--)
    {
        cin>>a>>b;
        num=b-a;
        if(num<=2)
          cout<<f[num]<<endl;
        else if(num>=m)
            cout<<f[num]<<endl;


    }
    return 0;


}
           

感想: 就是蜂房的圖形不好想,數組要大一點,避免越界,我真是太懶了。。。今晚上睡不着了,奮鬥吧,