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
 

周賽的蛋疼題目,沒啥特別的,比如說蜜蜂在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]);
        }
    }
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章