思路:这道题答案不难,但想出来有点难。对于第一个蜂窝,第一个蜂窝到达它的最小距离为1,对于第二个蜂窝,第一个蜂窝到达它的最小距离为1,对于第三个蜂窝,第一个蜂窝到达它的最小距离为2,这样推下去,就可以发现答案是一个斐波那契数列!!!
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=100+10;
long long a[maxn],n,x,y;
int main(){
scanf("%lld",&n);
a[1]=a[2]=1;
for(int i=3;i<=50;i++)
a[i]=a[i-1]+a[i-2];
for(int i=1;i<=n;i++){
scanf("%lld%lld",&x,&y);
printf("%lld\n",a[y-x+1]);
}
return 0;
}