1011 Problem K
题意:有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。
思路:蜜蜂爬到蜂房n的路线数为,其到蜂房n-1和蜂房n-2的路线数之和,不断的递归求解。
感想:这里对于从蜂房a到蜂房b的可能路线数,实际上可以看做是从蜂房1到蜂房b-(a-1)的路线数。
#include<iostream>
using namespace std;
int main(){
int n,a,b,i;
long long f[100];
f[2]=1; f[3]=2;
for(i=4;i<=50;i++)
f[i]=f[i-1]+f[i-2];
cin>>n;
while(n--){
cin>>a>>b;
b=b-(a-1);
cout<<f[b]<<endl;
}
return 0;
}