zoukankan      html  css  js  c++  java
  • 递归练习

    求最大公约数

    /**
         * 运用递归,求最大公约数.(假设 m > n)
         *
         * @param m
         * @param n
         * @return
         */
        static int gcd(int m, int n) {
            if (n == 0)
                return m;
            return gcd(n, m % n);
        }
    

    斐波那契数列

    /**
    
         * 
    斐波那契数列
         * 
    O(2^n)
         * @param n
     n为最后一项的索引
         * @return
         */
        static int fib(int n) {
            if (n == 1 || n == 2)
                return 1;
            return fib(n - 1) + fib(n - 2);
        
    

    }

    汉诺塔递归解法

    /**
     * 汉诺塔递归解法
     */
    public class _01_TowerOfHanoi {
        public static void main(String[] args) {
            printHanoiTower(20, "A", "B", "C");
        }
    
        /**
         * 将N个盘子从source移动到target的路径的打印
         *
         * @param N    初始的N个从小到达的盘子,N是最大编号
         * @param from 原始柱子
         * @param to   辅助的柱子
         * @param help 目标柱子
         */
        static void printHanoiTower(int N, String from, String to, String help) {
            if (N == 1) {
                System.out.println("move " + N + " from " + from + " to " + to);
                return;
            }
    
            printHanoiTower(N - 1, from, help, to); // 先把前N-1个盘子挪到辅助空间上去
            System.out.println("move " + N + " from " + from + " to " + to);  // N可以顺利到达target
            printHanoiTower(N - 1, help, to, from); // 让N-1从辅助空间回到源空间上去
    
        }
    }
    

    小白正在上楼梯,楼梯有n阶台阶,小白一次可以上1阶, 2阶或者3阶,实现一个方法,计算小白有多少种走完楼梯的方式。

    
    import java.util.Scanner;
    
    public class Case01_小白上楼梯 {
      public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
          int n = sc.nextInt();
          int res = f(n);
          System.out.println(res);
        }
      }
    
      private static int f(int n) {
        if (n == 0) return 1;
        if (n == 1) return 1;
        if (n == 2) return 2;
        return f(n - 1) + f(n - 2) + f(n - 3);
      }
    }
    
  • 相关阅读:
    RHEL6.5安装QT5.4,设置环境变量
    Oprofile安装与使用探索
    龙芯3A上V8的编译与测试
    C#穿透session隔离———Windows服务启动UI交互程序 be
    C#获取CPU与网卡硬盘序列号及Base64和DES加密解密操作类 be
    C#读取Excel转换为DataTable be
    WPF DataGrid ScrollBar Style be
    C#操作注册表 be
    C#读取Excel转为DataTable be
    C# DataTable与Excel读取与导出 be
  • 原文地址:https://www.cnblogs.com/btlord/p/14406147.html
Copyright © 2011-2022 走看看