有一隻經過訓練的蜜蜂隻能爬向右側相鄰的蜂房,不能反向爬行。請程式設計計算蜜蜂從蜂房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> 蜂房的圖形:

思路:就是一個典型的斐波拉契數列,利用遞歸,先打好表後,再利用公式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;
}
感想: 就是蜂房的圖形不好想,數組要大一點,避免越界,我真是太懶了。。。今晚上睡不着了,奮鬥吧,