• 递归


    定义:在定义自身的过程中又直接或间接调用自身的一种算法。

    组成元素:
        1.递归调用
        2.递归终止条件
        
    适用范围:
        1.一个问题可被分解为若干层简单的子问题
        2.子问题与其上一层问题解决方法一致
        3.外层问题的解决依赖子问题的解决
        
    范例:Fibonacci数列
    1.Fibonacci类

     1 /**
     2  * @Description: 斐波那契数列:
     3  * 1,1,2,3,5,8,13,21
     4  * F(n) = F(n-1) + F(n-2)
     5  * @author Ivy
     6  */
     7 public class Fibonacci {
     8 
     9     /**
    10      *
    11      * @Description: 计算F(n)
    12      * @param n 月份数
    13      * @return F(n) 兔子的总对数
    14      */
    15     public int F(int n) {
    16         if (n < 1) {
    17             return 0;
    18         } else if (n == 1 || n == 2) {
    19             return 1;
    20         } else {
    21             return F(n-1) + F(n-2);
    22         }
    23     }
    24     
    25 }


    2.测试类

     1 public class FibonacciTest {
     2 
     3     public static void main(String[] args) {
     4 
     5         Fibonacci fibonacci = new Fibonacci();
     6         int n = 8;
     7         System.out.println("月数:" + n + ",兔子的对数:" + fibonacci.F(n));
     8         
     9     }
    10 
    11 }


    范例:用递归计算n!
    1.阶乘类 - Factorial

     1 /**
     2  * @Description: 用递归计算n!
     3  * @author Ivy
     4  */
     5 public class Factorial {
     6 
     7     public int recur(int n){
     8         if (n == 0) {
     9             return 1;
    10         } else {
    11             return n*recur(n - 1);
    12         }
    13     }
    14     
    15 }


    2.测试类

     1 public class FactorialTest {
     2 
     3     public static void main(String[] args) {
     4         Factorial factorial = new Factorial();
     5         int n = 4;
     6         System.out.println(n + "!:" + factorial.recur(n));
     7 
     8     }
     9 
    10 }




        
       

  • 相关阅读:
    第九周进度条
    梦断代码阅读笔记01
    NABCD分析
    软件工程个人作业05
    HDU 3949 XOR(线性基)
    luogu 2115 破坏(01分数规划)
    luogu 1360 阵容均衡(前缀和+差分+hash)
    luogu 1967 货车运输(最大生成树+LCA)
    luogu 1344 追查坏牛奶(最小割)
    BZOJ 2007 海拔(平面图最小割转对偶图最短路)
  • 原文地址:https://www.cnblogs.com/ivy-xu/p/5749522.html
Copyright © 2020-2023  润新知