一只小蜜蜂...
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 93249????Accepted Submission(s): 33187
?Problem Description
有一只經過訓練的蜜蜂只能爬向右側相鄰的蜂房,不能反向爬行。請編程計算蜜蜂從蜂房a爬到蜂房b的可能路線數。
其中,蜂房的結構如下所示。?
?Input
輸入數據的第一行是一個整數N,表示測試實例的個數,然后是N 行數據,每行包含兩個整數a和b(0<a<b<50)。
?
?Output
對于每個測試實例,請輸出蜜蜂從蜂房a爬到蜂房b的可能路線數,每個實例的輸出占一行。
?
?Sample Input
2 1 2 3 6
?
?Sample Output
1 3
?
?Author
lcy
?
?Source
遞推求解專題練習(For Beginner)
?
?Recommend
lcy
?
可以看出蜜蜂只能從i走到i+1或者i+2;所有f[n]=f[n-1]+f[n-2].
數據比較大,輸出用%lld
#include <iostream>
#include <cstdio>
typedef long long LL;
using namespace std;
const int maxn=55;
LL f[maxn];
int main()
{int T;scanf("%d",&T);while(T--){int a,b;scanf("%d%d",&a,&b);f[a]=f[a+1]=1;for(int i=a+2;i<=b;i++){f[i]=f[i-1]+f[i-2];}printf("%lld\n",f[b]);}return 0;
}
?
?