hdu-2044- 一只小蜜蜂...

Problem Description
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示。

 

Input
输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0
 

Output
对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。
 

Sample Input
 
   
2 1 2 3 6
 

Sample Output
 
   
1 3
 

周赛的蛋疼题目,没啥特别的,比如说蜜蜂在4号格子,那么下一步就只能爬到5号或6号格子,而不能回到3号或2号格子,那么如果想从4号爬到7号,就有4-5-7或是4-6-7两条路线,以此类推,从1号格子爬到i号格子(i=1,2,3...)的路线数恰好是斐波那契数列,而从图上可以看出3号到8号跟1号到6号其实是一样的走法,所以答案就是从1号到b-a+1号格子的方法数


最近刚学java,就用java代码了

import java.io.*;
import java.util.*;
import java.lang.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner cin=new Scanner(new BufferedInputStream(System.in));
        long[] s=new long[55];
        s[1]=s[2]=1;
        
        for(int i=3;i<=50;++i)
        {
            s[i]=s[i-1]+s[i-2];
        }
        
        int num=cin.nextInt();
        int a,b;
        while(0!=num--)
        {
            a=cin.nextInt();
            b=cin.nextInt();
            System.out.println(s[b-a+1]);
        }
    }
}



你可能感兴趣的:(Java,递推)