斐波那契数列变形,在本题中不是从1-N,而是从M-N
下标 1 2 3 4 5 6 7 8 9
值 1 1 2 3 5 8 13 21 34(每一项都是前两项的和)
小蜜蜂走蜂房
1-2 1种 12
1-3 2种 123 13
1-4 3种 124 134 1234
那么可以看成走楼梯问题
给出两个值,a,b,当前在a阶,到b阶有多少种走法。
那么,可以将a看成是第0阶,b则可以看成(b-a)
下标 0 1 2 3 4 5
值 0 1 2 3 5 8
(可能看出下标2 有点不对,但我们要根据题意,自行定义,这里先自定义好前三项,当然还可以把0下标值为1,因为本题中0<a<b<50,AC代码中就是按后者这样做的)
从第 0 阶到第1阶有1种
从第 0 阶到第2阶有2种
从第 a 阶到第b阶则有f[b-a]中
举例 从5到第7阶,你可以想象一下,在有限定条件下,那么你能有几种方法从5阶走到第7阶呢?是不是和从第 0 阶到第 2阶是一个道理呢?
看到这里,你应该知道怎么做了吧。
#include<stdio.h>
int main(void)
{
int i,n,a,b;
long long narr[55];
narr[0]=1;narr[1]=1;
for(i=2;i<51;i++)
{
narr[i]=narr[i-1]+narr[i-2];
}
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&a,&b);
printf("%lld\n",narr[b-a]);
}
return 0;
}