hdu 2044 一只小蜜蜂

时间:2021-06-05 14:52:17

hdu 2044 一只小蜜蜂

斐波那契数列变形,在本题中不是从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;
}