算法与程序设计:递归

Posted Abro.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法与程序设计:递归相关的知识,希望对你有一定的参考价值。

目录

一、递归的概念

二、举例

2.1 阶乘函数

2.2 Fibonacci数列

2.3 Ackerman函数

2.4 整数划分问题

三、实现方法(Java程序)

3.1 阶乘函数

3.2 Fibonacci数列

3.3 Ackerman函数

3.4 整数划分问题


一、递归的概念

  • 直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数
  • 树型结构和图的结构使用递归算法可使操作简化;
  • 递归算法的关键是找出递归关系式。

二、举例

2.1 阶乘函数

2.2 Fibonacci数列

 

2.3 Ackerman函数

 

2.4 整数划分问题


 

三、实现方法(Java程序)

3.1 阶乘函数

public static int jiecheng(int n){
    if (n = 0) return 1;
    if (n > 0)
        return jiecheng(n-1)*n;
}

 

3.2 Fibonacci数列

public static int fibonacci(int n){
    if(n<=1) return 1;
    return fibonacci(n-1)+fibonacci(n-2);
}

3.3 Ackerman函数

public static int Ackerman(int n,int m){
    if(n == 0 && m >= 0) return 1;
    if(n == 1 && m == 0) return 2;
    if(n >= 2 && m == 0) return n+2;
    if(n >= 1 && m >= 1) return Ackerman(Ackerman(n-1,m),m-1);
    return -1;
}

3.4 整数划分问题

public static int intdivision(int n,int m){
    if(n<1 || m<1) return 0;
    if(n == 1 || m == 1) return 1;
    if(n<m) return intdivision(n,n);
    if(n==m) return intdivision(n,n-1)+1;
    return intdivison(n,m-1)+intdivision(n-m,m);
}

 算法与程序设计的复习嘻嘻嘻蟹蟹٩('ω')و 

 

以上是关于算法与程序设计:递归的主要内容,如果未能解决你的问题,请参考以下文章

树的存储结构的设计及递归遍历(前序,后序,层序)算法实现——Java数据结构与算法笔记

树的存储结构的设计及递归遍历(前序,后序,层序)算法实现——Java数据结构与算法笔记

树的存储结构的设计及递归遍历(前序,后序,层序)算法实现——Java数据结构与算法笔记

树的存储结构的设计及递归遍历(前序,后序,层序)算法实现——Java数据结构与算法笔记

快速排序-递归实现

递归算法