0 0

递归的用法?5

在运用递归的时候  
  我应该怎么想哦  ?
  感觉怎么都用不好它
  谢谢了哦 !
2008年6月25日 14:00

3个答案 按时间排序 按投票排序

0 0

采纳的答案

理解递归,首先就要理解堆栈.因为递归的实现是基于堆栈的.

递归这东西要的是理解.要的是那恍然大悟的一瞬间.LZ不要再急于求成.应该慢慢来.多做一些这方面的习题,慢慢的就理解了.

推荐一本书:《数据结构与算法-Java语言版》,里面对于递归的阐述很清晰.楼主有时间可以看一下.

2008年6月25日 20:10
0 0

找简单的例子看看。

/**
	 求n*(n-1)*(n-2)......
	*/
	public static int getN(int n){   
	   
	   if(n > 0){
	       return n * getN(n-1);
	   }
	   else{
		   return 1;
	   }
	}

2008年6月25日 15:01
0 0

理解递归最好的办法是理解数学归纳法,找本数学教材,把上面的数学归纳法题目做几个递归函数,你肯定行。

另外注意递归函数一定要有个退出机制,否则死循环,溢出。

2008年6月25日 14:14

相关推荐

    java中递归用法详解

    java中递归的用法比较单一,但是用途比较重要,在开发中经常用到,熟练掌握递归的用法有利于程序代码的快速合理编写

    C#递归 C#递归 C#递归

    这个方法首先定义了一个SQL查询语句来获取数据源,然后使用`ExecuteDataTable`方法执行SQL查询并将结果存储在`DataTable`对象`dt`中。 接下来,方法创建了一个`DataView`对象`dv`并设置其过滤器为`byte=0`,这意味...

    C# 递归函数详细介绍及使用方法

    什么是递归函数/方法? 任何一个方法既可以调用其他方法也可以调用自己,而当这个方法调用自己时,我们就叫它递归函数或递归方法。 通常递归有两个特点: 1. 递归方法一直会调用自己直到某些条件被满足 2. 递归方法...

    c++用递归的方法编写函数求Fibonacci级数_递归_

    递归是一种解决问题的方法,它将问题分解为更小的子问题,直到子问题简单到可以直接解决。C++是一种强大的面向对象的编程语言,支持函数调用自身的技术,即递归。 Fibonacci数列的定义如下:序列的前两个数字是0和1...

    可并行递归算法的递归多线程实现

    对于非尾递归的子线程,父线程在启动递归子线程后,可以通过调用子线程的`join()`方法来等待子线程的完成,这有助于同步线程之间的操作。然而,在并行递归算法中,我们往往希望避免这种同步,以最大化并行度。为此,...

    经典递归转化为非递归

    下面我们将讨论递归的本质、尾递归、一般递归的非递归实现方法,并提供一个非递归中序遍历的实现示例。 递归的本质是通过栈来保存状态,然后再次调用自己进入新的状态,然后函数返回的时候回到上次保存的状态。这...

    快速选择非递归与递归算法实现

    空间复杂度方面,非递归实现主要取决于分区操作和栈的使用,而递归实现则依赖于递归深度,一般情况下都是O(log n)。 在实际编程中,可以根据具体需求选择非递归或递归实现。非递归版本更适合内存有限或者递归深度...

    反转链表的一般用法和递归用法

    本文将详细介绍如何使用一般方法和递归方法来反转单向链表。 ### 一般方法(迭代法) **步骤**: 1. 定义三个指针`pre`、`cur`和`ne`,分别用于前一个节点、当前节点和下一个节点。 2. 初始化`pre`为`NULL`,`cur`...

    .net 递归算法 .net 递归算法.net 递归算法

    在.NET编程环境中,递归算法是一种强大的工具,它允许函数或方法调用自身来解决复杂问题。递归的核心思想是将大问题分解为相同或相似的小问题,直到问题变得足够简单,可以直接得出答案。这种解决问题的方式在数据...

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

    由于阿克曼函数的递归深度可能非常深,因此非递归实现通常是更有效的方法,特别是当使用堆栈来模拟递归调用时。非递归实现的基本思想是将递归调用转化为循环,并使用数据结构(如堆栈)存储中间结果,避免了递归带来...

    递归算法与非递归转化

    (2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。 (3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。 (4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来...

    文件递归-XML递归-树图递归

    - 选择好文件夹后,程序会使用递归方法 `SearchFiles` 来遍历选定的文件夹及其子文件夹,并将所有文件和文件夹的信息添加到 `TreeView` 控件中。 #### 二、树图递归—数据表多层关系 树形结构是一种非线性的数据...

    数据结构二叉树遍历递归,非递归

    二叉树作为一种重要的数据结构,在计算机科学中广泛应用于搜索、排序、树形表示等领域。...在学习过程中,可以尝试不同的数据结构和优化策略,如使用迭代而不是递归,或者实现自底向上的遍历方法。

    C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法

    本文实例讲述了C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法。分享给大家供大家参考,具体如下: /*求二叉树叶子节点个数 -- 采用递归和非递归方法 经调试可运行源码及分析如下: ***/ #include #...

    阿克曼函数 c程序 递归与非递归算法的综合

    为了解决这个问题,你可以使用非递归方法,即栈来模拟递归过程。这种方法不直接使用函数调用来存储和恢复状态,而是通过数据结构(如栈)来手动管理这些状态。在C语言中,你可以创建一个栈结构,用于保存中间计算的...

    二叉树递归与非递归遍历

    非递归遍历通过使用辅助数据结构(如栈)避免了深度递归,更适合处理大规模的二叉树。同时,它也可以通过适当修改实现其他特定顺序的遍历,如层次遍历(Level Order Traversal),通过队列来存储节点。 在实际应用...

    CRP.zip_CRP_CRP递归图_matlab 递归图_递归 MATLAB_递归分析

    递归图是一种图形表示方法,用于可视化递归函数调用的过程。在MATLAB中,创建递归图可以帮助开发者直观地理解递归函数的行为,包括调用关系、深度以及可能导致无限循环的情况。 `install.m`文件可能是一个安装脚本...

    LeetCode 递归教程

    递归原理递归是一种解决问题的方法,通过使用调用自身的函数作为子程序。您可能会想知道我们如何实现一个调用自身的函数。诀窍在于每次递归函数调用自身时,它都将给定问题简化为子问题。递归调用继续进行,直到达到...

    消除文法左递归

    在这个项目中,可能需要使用MFC来开发一个图形用户界面,用户可以输入文法规则,程序自动检测并消除文法的左递归。 实验报告通常会包括以下内容: - 对左递归概念的理论阐述 - 实现算法的详细步骤 - 源代码的分析,...

    数据库设计之递归树查询

    本文将深入探讨如何通过递归查询来解决这类问题,并着重讲解使用`WITH`语句来实现递归查询的方法,适用于多种数据库系统,如MySQL、PostgreSQL、SQL Server等。 一、理解递归查询 递归查询是一种在数据库中遍历层级...

Global site tag (gtag.js) - Google Analytics