前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 递归函数

java 递归函数

作者头像
全栈程序员站长
发布2022-07-12 17:10:39
8100
发布2022-07-12 17:10:39
举报
文章被收录于专栏:全栈程序员必看

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

一、递归函数,通俗的说就是函数本身自己调用自己… 如: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.cn/118660.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档