`
wuhaidong
  • 浏览: 357710 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

递归实现

    博客分类:
  • SE
 
阅读更多

递归的思想:方法自己调用自己(A方法自己调用A方法),但是必须要有一个出口,否则会出现死循环,所以要用好递归也是一个难事。

 

举个例子吧

public class DiGui {

	
	//用循环的方法实现阶乘
	public int test(int number){
		int total = 1;
		for(int i=1; i<=number;i++){
			total = total * i; 
		}
		return total;
	}
	
	//用递归的方法实现阶乘
	public int test2(int number){
		if(number == 1){
			return 1;
		}else{
			return number*test2(number-1);
		}
	}
	
	
	public static void main(String[] args) {
		System.out.println(new DiGui().test(5));
		System.out.println(new DiGui().test2(5));
	}

}
 
分享到:
评论

相关推荐

    ackermann函数的递归实现和非递归实现

    ### 递归实现 阿克曼函数的递归定义非常简洁,通常表示为`A(m, n)`,其中`m`和`n`是非负整数。函数有以下基础情况: 1. `A(0, n) = n + 1` 对于所有非负整数`n`。 2. `A(m, 0) = A(m - 1, 1)` 对于所有`m &gt; 0`。 ...

    阿克曼函数非递归实现

    非递归实现阿克曼函数通常使用堆栈数据结构,因为堆栈可以有效地处理后进先出(LIFO)的数据操作。首先,我们需要将初始的函数调用和参数压入堆栈。然后,根据阿克曼函数的定义,我们将执行以下操作: 1. 检查堆栈顶...

    快速排序 --- 非递归实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R....总的来说,这个压缩包提供了一个非递归实现快速排序的完整示例,通过自定义栈的数据结构,实现了快速排序算法,适用于理解和学习快速排序的非递归实现方式。

    MyBatis之自查询使用递归实现 N级联动效果(两种实现方式)

    "MyBatis之自查询使用递归实现 N级联动效果" MyBatis是一个功能强大且灵活的持久层框架,它支持自查询和递归查询,下面我们将探讨如何使用MyBatis实现 N级联动效果。 递归查询 递归查询是指在一个查询中调用自身...

    递归实现回文判断

    根据给定的文件信息,我们可以总结出以下关于“递归实现回文判断”的知识点: ### 一、回文概念 回文是指一个字符串从左到右读和从右到左读都是一样的字符串。例如,“abcba”、“madam”等都是回文字符串。 ### ...

    java 用递归实现字符串反转

    ### Java使用递归实现字符串反转 在Java编程语言中,递归是一种常用的方法来解决许多问题,特别是那些可以通过分解成更小子问题来解决的问题。本文将详细介绍如何使用递归来实现字符串的反转。 #### 一、递归基础...

    递归实现字符串逆序

    ### 递归实现字符串逆序 #### 知识点概览 本文将详细介绍如何使用C++中的递归技术来实现字符串的逆序操作。逆序字符串是一个常见的编程问题,在多种场景下都有应用,例如文本处理、算法设计等。通过递归方法解决此...

    java递归实现 阶乘

    在这个实例中,我们将深入探讨如何使用Java递归实现阶乘计算,并以1到10的数字为例进行演示。 阶乘是一个数学概念,表示一个正整数n的所有小于等于n的正整数的乘积,通常表示为n!。例如,5的阶乘(5!)是5 × 4 × ...

    递归实现字符串反向输出

    ### 递归实现字符串反向输出 在计算机科学领域,递归是一种常用且重要的编程技巧。本文将通过一个具体的例子——使用C语言实现字符串的反向输出,来深入理解递归的基本概念及其应用。 #### 一、递归基础 递归...

    C语言递归实现逆序程序

    C语言递归实现逆序程序 C语言初学者必会

    非递归实现fibonacci数列

    使用C++非递归实现fibonacci数列,对正在学习算法的同学应该挺有帮助的

    非递归实现深度优先遍历.zip

    非递归实现深度优先遍历,通常使用栈作为辅助数据结构,而不是递归调用,这样可以避免系统栈溢出的问题,尤其在处理大规模数据时更为适用。 1. **前序遍历**:在前序遍历中,我们首先访问根节点,然后遍历左子树,...

    非递归实现最短哈密尔顿回路

    非递归实现的最短哈密顿回路,用分支限界法优化,但速度不太理想。

    二叉树的创建与三种遍历的递归与非递归实现

    二叉树的创建与三种遍历的递归与非递归实现 包括二叉树的动态创建,前序遍历,中序遍历,后续遍历的递归与非递归方法的实现。

    Python用递归实现字符串反转

    ### Python用递归实现字符串反转 #### 知识点概览 1. **递归的基本概念** 2. **Python中的递归函数实现** 3. **字符串处理与操作** 4. **递归在字符串反转中的应用** 5. **递归调用的深度限制问题** #### 递归的...

    八皇后递归及非递归实现源码

    八皇后递归及非递归实现源码; 八皇后递归及非递归实现源码

    递归实现:汉诺塔问题

    ### 递归实现:汉诺塔问题 #### 经典问题背景 汉诺塔(Hanoi Tower)问题是一个经典的递归问题,源自一个古老的故事。传说在印度的一个神殿里,有三根金刚石柱子,第一根柱子上自上而下按大小顺序叠着64个金盘。...

    数据结构之平衡二叉树的递归实现

    本文将深入探讨平衡二叉树的递归实现,以及其在C语言中的应用。 首先,理解平衡二叉树的概念至关重要。在二叉搜索树中,左子树上的所有节点的值都小于根节点,右子树上的所有节点的值都大于根节点。然而,如果树不...

    汉诺塔-汉诺塔的非递归实现源码和原理讲解

    递归解决方案是汉诺塔问题的常见解答方式,但这里我们将探讨非递归实现。 非递归实现通常依赖于栈数据结构,因为汉诺塔问题本质上是一个深度优先搜索的问题。首先,我们需要理解栈的工作原理:栈是一种后进先出...

    递归实现元素全排列.html

    递归实现元素全排列

Global site tag (gtag.js) - Google Analytics