递归函数java_java 递归函数

递归函数java_java 递归函数一 递归函数 通俗的说就是函数本身自己调用自己 如 n n n 1 你定义函数 f n nf n 1 而 f n 1 又是这个定义的函数 这就是递归二 为什么要用递归 递归的目的是简化程序设计 使程序易读三 递归的弊端 尽管非递归函数效率高 但较难编程 可读性较差 递归函数的缺点是添加 了系统开销 也就是说 每递归一次 栈内存就多占用一截四 递归的条件 需有完毕任务的语句 需满足递归的要求

一、递归函数,通俗的说就是函数本身自己调用自己…

如: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/225440.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午9:19
下一篇 2026年3月17日 上午9:19


相关推荐

  • 分布式缓冲之memcache

    1.memcache简介memcache是danga.com的一个项目,它是一款开源的高性能的分布式内存对象缓存系统,,最早是给LiveJournal提供服务的,后来逐渐被越来越多的大型网站所采用

    2021年12月28日
    54
  • 一元三次方程求根公式详细逐步推导

    一元三次方程求根公式详细逐步推导注 颜色为代数置换标记 推导后期需将前面的设定值回代 注 颜色为代数置换标记 推导后期需将前面的设定值回代 注 颜色为代数置换标记 推导后期需将前面的设定值回代已知 ax3 bx2 cx d 0a 0a b c d 已知 ax 3 bx 2 cx d 0 uada neq0 uada b c d in Re 已知 ax3 bx2 cx d 0a 0a b c d

    2026年3月19日
    1
  • 提升网站权重优化方法,网站权重优化步骤

    提升网站权重优化方法,网站权重优化步骤SEO 权重是各大搜索引擎给予网站赋予的评估或评价等级 代表着网站在某领域中的权威性 健康度及成长潜力 网站的权重越高一方面代表其越具权威性 另一方面也代表着搜索引擎对其友好度越强 会在排名 流量和信任度评价给予较好的扶持 权重是一个相对性的概念 即根据某既定指标的整体评价中相对的重要程度 如果用容易理解的方法来说 比如指数是量级统计数据 那么权重便是性质评估数据 互联网平台普遍存在指数和权重相关体系化的数据管理 一 SEO 权重与网站的关系 1 百度权重是第三方推出 收录与其没直接联系

    2026年3月19日
    2
  • 硬盘分区 mbr gpt_磁盘阵列如何分区

    硬盘分区 mbr gpt_磁盘阵列如何分区目录思维导图硬盘的物理结构硬盘读写过程寻址方式CHS寻址LBA寻址硬盘的分区结构MBR分区结构0号扇区内容扩展分区GPT分区结构文件系统文件系统的定义文件系统的结构raid磁盘阵列技术raid-0raid-1raid-5raid-10和raid-01思维导图本篇只涉及到导图的右侧,只讲述硬盘的结构…

    2022年8月11日
    11
  • LED点阵屏设计一

    LED点阵屏设计一LED 点阵屏设计一象棋小子 nbsp nbsp nbsp LED 点阵屏显示原理概述图 1 1 为一种 8×8 的 LED 点阵单色行共阳模块的内部等效电路图 对于红光 LED 其工作正向电压约为 1 8v 其持续工作的正向电流一般 10ma 左右 峰值电流可以更大 如下图 当某一行线为高电平而某一列线为低时 其行列交叉的点就被点亮 当某一行线为低电平时 无论列线如何 对应的这一行的点全部为暗 LED 点阵屏

    2026年3月6日
    2
  • clientX与pageX

    clientX与pageXoffsetX offsetY 相对于当前元素的位移 x y 相对于当前座标系的位移 但是 IE 常常搞错当前座标系 layerX layerY 相对于当前座标系的位移 pageX pageY 相对于网页的位移 clientX clientY 相对于可视窗口的位移 screenX screenY 相对于屏幕的位移

    2026年3月16日
    2

发表回复

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

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