zoukankan      html  css  js  c++  java
  • 蜜蜂寻路(斐波那契)

    有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房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

    找规律:菲波那切数列

    1、“蜜蜂只能爬向右侧相邻的蜂房”准确来说,包含三个方向:正右方,右下方,右上方。

    2、到 1 只有一条路(本身),到 2 有一条路线(1 —> 2),到 3 有两条路线(1 —>3 或者 2 —> 3),到 4 有 3 条路线(到 2 的 1 条加上到 3 的 2 条),到 5 有 5  条路线(到 3 的 2 条加上到 4 的 3 条)……

    3、以此类推,从原点到达各个蜂房的路线数分别为:

    蜂房号 1 2 3 4 5 6 7
    路线数 1 1 2 3 5 8 13

    代码:

    import java.util.Scanner;
    
    public class Main{
            static long f[]=new long[51];
            static void func(){
                    f[1]=1; f[2]=1;
                    for(int i=3;i<50;i++)
                        f[i]=f[i-1]+f[i-2];
            }
            public static void main(String[] args) {
                    Scanner scan=new Scanner(System.in);
                    func();
                    int t=scan.nextInt();
                    while(t-->0){
                          int a=scan.nextInt();
                          int b=scan.nextInt();
                          System.out.println(f[b-a+1]);
                    }
            }
    }
  • 相关阅读:
    UPC-5930 Rest Stops(水题)
    UPC-6199 LCYZ的道路(贪心)
    UPC-6198 JL的智力大冲浪(简单贪心)
    POJ 3279 Filptile dfs
    hrbust 1621 迷宫问题II 广搜
    HDU 1045 dfs + 回溯
    优先队列基本用法
    树。森林。和二叉树之间的转换
    POJ 2689 筛法求素数
    哈理工OJ 1328
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12230871.html
Copyright © 2011-2022 走看看