算法与程序设计:递归
Posted Abro.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法与程序设计:递归相关的知识,希望对你有一定的参考价值。
目录
一、递归的概念
- 直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数;
- 树型结构和图的结构使用递归算法可使操作简化;
- 递归算法的关键是找出递归关系式。
二、举例
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数据结构与算法笔记