思路:由图可知,用d[I]带表两个点相距为I的方法总数,在n可以走到n+1,n+2两个格子。反过来,在n可以由n-1,和n-2走一步过来。所以f[n]=f[n-1]+f[n-2].
#include<cstdio>
#define ll long long
ll d[52];
int main()
{
d[1]=1;//相距为1 1种方法
d[2]=2;//相距为2 2种方法
for(int i=3;i<=52;i++)
d[i]=d[i-1]+d[i-2];
int T;
scanf("%d",&T);
while(T--)
{
int a,b;
scanf("%d%d",&a,&b);
int dis=b-a;
printf("%lld\n",d[dis]);
}
}