HDoj 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
 

 

Author
lcy
 

 

Source
 

 

Recommend
lcy   |   We have carefully selected several similar problems for you:  2045 2046 2050 2047 2049 
 
 
 
 
类似于题目HDoj 2041 超级楼梯 运用动态规划思想
但是要注意不能用int存储路线数。因为0<a<b<50,用int 存储的路线数可能会溢出,所以用long long存储路线数
输出long long最好用cout , 用printf("%lld", dp[b])在编译时可能会出现warning
 
C语言代码如下:
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    int  n;
    int a,b;
    long long dp[100];
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d%d",&a,&b);
        dp[a]=1;
        dp[a+1]=1;
        for(int i=a+2;i<=b;i++)
        {
            dp[i]=dp[i-1]+dp[i-2];
        }
        cout<<dp[b]<<endl;
        //printf("%lld",dp[b]);         这个也可以用输出long long与cin结果一样,但编译时会出现警告
    }
}

 

 
posted on 2020-04-01 15:25  沈香茶  阅读(109)  评论(0)    收藏  举报