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;
}

  

转载于:https://www.cnblogs.com/A--Q/p/5697423.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值