java 递归函数

java 递归函数

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

一、递归函数,通俗的说就是函数本身自己调用自己… 
如: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)+”头牛”); 

   } 

递归、线性递归、尾递归的概念?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118660.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解Postman校验响应数据之设置断言编写Test脚本

    详解Postman校验响应数据之设置断言编写Test脚本

    2021年7月14日
    100
  • ELK 收集 Tomcat 日志「建议收藏」

    ELK 收集 Tomcat 日志「建议收藏」01Tomcat安装与测试1.1安装Tomcat安装Tomcat的本体和相关官方测试demo,参考链接apt-getinstalltomcat8-y#安装Tomcat本体apt-getinstalltomcat8-docstomcat8-examplestomcat8-admin-y#安装测试demo1.2Tomcat启动检查systemctlstarttomcat8#启动Tomcatsystemctlstatustomcat8netstat

    2022年6月20日
    26
  • Jsp中EL表达式不解析问题

    Jsp中EL表达式不解析问题记一次很郁闷的Bug         前一天晚上写好的JSP页面,然后发布在Tomcat上面之后,一切正常。第二天早上打开之后,发现css样式始终加载不出来,刚开始以为网速问题(前一天晚上测试一切正常,因此排除代码问题),测试网络一切正常,这就跟尴尬了,那css加载不出来是什么意思,难不成遇见鬼了?于是在发布后的页面检查代码,发现页面没有解析EL表达式,找到问题就想办法解决,于是开始折腾,最终还是…

    2022年6月13日
    30
  • spdlog使用示例「建议收藏」

    spdlog使用示例「建议收藏」////Copyright(c)2015GabiMelman.//DistributedundertheMITLicense(http://opensource.org/licenses/MIT)//spdlogusageexample/*参考文献https://blog.csdn.net/haojie_superstar/article/details/89383433?ops_request_misc=&request_id=&biz_id=102

    2022年6月23日
    41
  • tfs安装教程_2008安装教程

    tfs安装教程_2008安装教程TFS2010安装配置一、安装过程注意:1、服务器内存要求2、需要SQLSERVER2005以上;3、选择“基础安”。二、TFS配置1、Server端配置。      (1)新建“团队项目集合”      (2)新建用户      注意:TFS的用户主要与windows用户结合2、Client端      注意:TFS与Client端与VS紧密整合,没有VSS那样的单独客户端(1)打开VS,连接到TFS      (2)创建“团队项目(3)将解决方案添加到TFS,右击解决方案,“添加到源代码

    2022年9月23日
    2
  • 怎么安装wget_Debian安装wget

    怎么安装wget_Debian安装wget第一步:执行wgetwww.baidu.com,若没有,会提示:-bash:wget:commandnotfound第二步:通过这个http://ftp.gnu.org/gnu/wget/下载wget的源代码wget-1.5.3.tar.gz第三步:通过命令行进入到下载后的文件夹,如:cdDownloads第四步:执行tar-zxvfwget-1.5.3.tar….

    2022年10月16日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号