`

递归函数

    博客分类:
  • J2EE
 
阅读更多
一、递归函数,通俗的说就是函数本身自己调用自己...
如:n!=n(n-1)!
你定义函数f(n)=nf(n-1)
而f(n-1)又是这个定义的函数。。这就是递归

二、为什么要用递归:递归的目的是简化程序设计,使程序易读

三、递归的弊端:虽然非递归函数效率高,但较难编程,可读性较差。递归函数的缺点是增加了系统开销,也就是说,每递归一次,栈内存就多占用一截

四、递归的条件:需有完成任务的语句,需满足递归的要求(减小而不是发散)

五、递归进阶:
1.用递归算n的阶乘:
  分析:n!=n*(n-1)*(n-2)...*1
  public int dReturn(int n){
     if(n==1){
        return 1;
     }else{
        return n*dReturn(n-1);
     }
   }
2.用递归函数算出1到n的累加:1+2+3+4+..+n
  public int dReturn(int n){
    if(n==1){
      return 1;
    }else{
      return n+dReturn(n-1);
    }
  }
3.要求输出一个序列:1,1,2,3,5,8,11......(每一个数为前两个数子之和,要求用递归函数)
  用java递归来表示一个函数:F(n)=F(n-1)+F(n-2);F(0)=1;F(1)=1;
   分析:X1=1; X2=1; X3=X1+X2; X4=X2+X3; ... ; Xn=X(n-1)+X(n-2)
   public int F(int n){
    if(n==1){
      return 1;
    }else if(n==2){
      return 1;
    }else{
       return F(n-1)+F(n-2);
    }
  } 
4.java用递归方法反向打印一个整数数组中的各个元素
   public static void  printAll(int index,int[] arr){
      System.out.println(arr[index]);
      if(index > 0){
       printAll(--index,arr);
      }
   } 
   public static void main(String[] args){
      int[] arr={1,2,3,4,5};
      printAll(arr.lenth-1,arr);
   }
5.编程求解:若一头小母牛,从出生起第四个年头开始每年生一头母牛,按次规律,第 n 年时有多少头母牛?
   public static int cattle(int n){
if(n<=0){
  return 0;
}else if(n<=3){
  return 1;
}else{
  return cattle(n-1)+cattle(n-3);
}
   }
   public static void main(String[] args){
      int n=10;
      System.out.println(n+"年后共有"+cattle(n)+"头牛");
   }
  
分享到:
评论

相关推荐

    C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。

    C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。 许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算...

    Oracle 递归函数介绍

    Oracle 递归函数介绍 Oracle 递归函数是一种特殊的PL/SQL函数,可以用于解决复杂的树形结构查询问题。递归函数可以自我调用,以便遍历树形结构的每个节点,直到达到停止条件。 在 Oracle 中,递归函数的定义语法...

    5.6 递归思想和递归函数1

    递归函数是实现递归思想的一种方式,通常在函数内部调用自身来解决复杂问题。本节将深入探讨递归思想和递归函数的概念,并通过几个具体的Python示例来阐述其工作原理和应用。 首先,理解递归的关键在于明确两个核心...

    Python语言基础:递归函数.pptx

    在编程领域,递归函数是一种基于函数自我调用来解决问题的策略。在Python中,递归函数的定义简单,逻辑清晰,使得复杂问题的解决变得直观。递归函数的关键在于每个递归调用都必须向基本情况靠近,即最终会达到一个不...

    递归函数例子8个.rar

    在编程领域,递归函数是一种基于自我调用的函数设计技术,它在处理特定问题时,尤其是涉及到数据结构如树和图的操作时,显得尤为重要。本压缩包包含8个递归函数的例子,覆盖了多种递归应用,让我们逐一探讨这些递归...

    数据结构:栈的应用-递归函数转非递归函数

    总结一下,通过使用数据结构中的栈,我们可以将效率较低的递归函数转换为非递归函数,提高计算效率,减少内存消耗,防止堆栈溢出。在实际编程中,尤其是在处理大数据量或需要高效运行的算法时,这样的优化是非常重要...

    递归函数示意图.pdf

    递归函数是计算机科学中的一种基础概念,它的基本思想是函数直接或间接地调用自身。在上述内容中,首先展示了一个简单递归函数的示例,然后又通过添加辅助函数进行了尾递归优化。 在简单递归函数的示例中,定义了一...

    嵌入式C语言培训-C编程基础-递归函数视频教程

    本教程“嵌入式C语言培训-C编程基础-递归函数视频教程”聚焦于C语言的一个关键特性——递归函数。递归是编程中的一个强大工具,能够简化复杂问题的解决方案,但它也需要程序员有深入的理解才能正确使用。 递归函数...

    计算递归函数调用次数

    在编程领域,递归函数是一种强大的工具,它通过自身调用来解决复杂问题。递归的基本原理是将大问题分解为相同或相似的小问题,并通过解决这些小问题来达到解决整个问题的目的。本主题关注的是如何计算递归函数的调用...

    delphi递归函数应用

    Delphi,作为一款流行的Object Pascal编程环境,同样支持递归函数的使用。本篇文章将详细探讨Delphi中的递归函数及其应用。 首先,我们要理解递归的基本概念。递归是指一个函数或过程通过调用自身来完成任务。这种...

    利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

    利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

    c++递归函数基本代码.zip

    在“c++递归函数基本代码.zip”压缩包中,可能包含了若干个示例,用于展示如何在C++中实现递归。 首先,理解递归的基本原理至关重要。递归函数必须满足两个条件:一是存在基本情况(base case),即问题可以直接...

    省市县递归函数

    省市县递归函数

    递归函数两个例子教程(VB6.0代码编写)

    在编程领域,递归函数是一种强大的工具,它通过调用自身来解决问题或执行任务。VB6.0(Visual Basic 6.0)虽然是一款较老的编程环境,但仍然广泛用于教学和某些遗留系统的维护。本教程将通过两个具体的例子深入讲解...

    第2章 原始递归函数

    由原始递归函数经过合成或原始递归得到的函数仍是原始递归函数.

    递归函数演示

    二是理解和调试递归函数可能较为困难,因为它们涉及的逻辑通常比非递归函数更为抽象。因此,在实际编程中,我们需要权衡递归的优点和缺点,选择最适合问题的解决方案。 总结来说,递归是计算机科学中的一个重要概念...

    Python中递归函数的使用示例

    使用环境:需要先安装PyCharm(请自己百度下载安装),以及然后官网上下载Python 2.7版本,以及Python 3.7版本后,安装在自己的电脑上。 使用步骤: ...目的:帮助理解递归函数在Python中的具体使用。

    使用递归函数在矩阵中寻找路径

    在这个场景中,我们采用了一种称为“回溯法”的策略,配合递归函数来找到从起点到终点的有效路径。本文将深入探讨回溯法的概念,递归函数的应用,以及如何将两者结合解决迷宫问题。 首先,理解回溯法是关键。回溯法...

    C语言递归函数设计

    C语言递归函数设计,如何使用递归函数进行算法计算,这样可以提高程序的质量

    Python 递归函数详解及实例

    Python 递归函数 如果一个函数体直接或者间接调用自己,那么这个函数就称为递归函数.也就是说,递归函数体的执行过程中可能会返回去再次调用该函数.在python里,递归函数不需要任何特殊的语法,但是它需要...

Global site tag (gtag.js) - Google Analytics