HDU 2044 一只小蜜蜂...

Problem Description

有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。
Input
输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。
Output
对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。
Sample Input
2
1 2
3 6
Sample Output
1
3
题目大意:if(不是英文) 略;
大致思路:1→2没什么好说的,3→6的路线数可以看成1→4,都从1出发的话,由递归f(1)=1,f(2)=2,f(3)=3,f(4)=5得出递推关系f(n)=f(n-1)+f(n-2)。详见代码。
#include<iostream>
using namespace std;
#include<cstring>
int main()
{
    int i,a,b,n,T;
    long long f[50];
    cin>>T;
    while(T--)
    {
        memset(f,0,sizeof(f));
        f[1]=1;
        f[2]=2;
        for(i=3;i<50;i++)//从3开始递推
            f[i]=f[i-1]+f[i-2];
        cin>>a>>b;
        cout<<f[b-a]<<endl;
    }
    return 0;
}

 

 
 

posted on 2017-08-11 15:16  FTA_Macro  阅读(132)  评论(0编辑  收藏  举报

导航