iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >使用Java怎么编写一个递归程序
  • 620
分享到

使用Java怎么编写一个递归程序

2023-06-06 11:06:48 620人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关使用Java怎么编写一个递归程序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。递归的定义递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为

这篇文章将为大家详细讲解有关使用Java怎么编写一个递归程序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

递归的定义

递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为规模小的问题来解决。

递归的要素

自定义递归函数,并确定函数的基本功能
例如Java从键盘输入一个数,求输入这个数的阶乘。这个时候把输入的数字作为形参

int diGuiTest(int n ){}

找到递归函数循环结束条件
在求阶乘的时候,我们不妨做出如下思考,例如输入的n是5,那么5!是5 * 4 3 * 2 * 1,那是不是可以写成
n
f(n-1)?,程序运行过程如下:
5* f(4)
f(4)相当于重新调用了函数,形参为4
5 * 4* f(n-1)
f(3)相当于重新调用了函数,形参为3
5 * 4* 3* f(n-1)
f(2)相当于重新调用了函数,形参为2
5 * 4* 3 * 2* f(n-1)
f(1)相当于重新调用了函数,形参为1
很容易发现,这时候如果递归调用到n为1的时候,就要结束调用自身
代码如下:

int diGuiTest(int n ){if(n==1){return 1;}else{return n*f(n-1);}}

代码示例

求1–100之间所有自然数的和

int sum (int n ){if(n==1){return 1 ;}else{return n+sum(n-1);}}

斐波拉契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2) (n ≥ 2,n ∈ N*)

int fibonacci(int n ){if (n<=1){return n;}else {return fibonacci(n-1)+fibonacci(n-2);}}

汉诺塔问题

使用Java怎么编写一个递归程序

首先我们考虑最简单的情况:

使用Java怎么编写一个递归程序

将最上面的一块放到B,再将最下面一块放到C,再把最上面一块从B放到C即可

使用Java怎么编写一个递归程序

public class HaNIO {  public static void main(String[] args) {    char A='A';    char B='B';    char C='C';    hannio(3,A,B,C);  }  static  void hannio(int paltfrom,char A,char B, char C){    if (paltfrom==1){      move (A,C);    }else {      hannio(paltfrom-1,A,C,B);//上面两个盘子,通过C柱到B柱      move (A,C);      hannio(paltfrom-1,B,A,C);//    }  }  static  void move(char A,char B){    System.out.println(A+"---->"+B);  }}

关于使用Java怎么编写一个递归程序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 使用Java怎么编写一个递归程序

本文链接: https://www.lsjlt.com/news/246452.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Java怎么编写一个递归程序
    这篇文章将为大家详细讲解有关使用Java怎么编写一个递归程序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。递归的定义递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为...
    99+
    2023-06-06
  • 怎么用Java编写一个小程序
    编写Java小程序的步骤如下:1. 安装Java开发工具包(JDK):从Oracle官网下载并安装最新版本的JDK。2. 配置开发环...
    99+
    2023-10-18
    java
  • 怎么用matlab写一个递归函数
    在MATLAB中,你可以使用以下步骤来编写递归函数:1. 定义函数:使用`function`关键字定义函数,并为函数命名。2. 编写...
    99+
    2023-08-19
    matlab
  • 利用Java编写一个归并排序算法
    利用Java编写一个归并排序算法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(D...
    99+
    2023-05-31
    java 归并排序 ava
  • java递归调用怎么写
    Java递归调用可以使用以下代码实现:```public static int factorial(int n) {if (n ==...
    99+
    2023-05-13
    java递归调用 java
  • 怎么用java编写一个记事本程序
    要用Java编写一个记事本程序,可以按照以下步骤进行:1. 创建一个Java项目,并命名为记事本程序。2. 创建一个主类,命名为"记...
    99+
    2023-09-26
    java
  • 怎么使用Lambda表达式编写递归
    本篇内容主要讲解“怎么使用Lambda表达式编写递归”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Lambda表达式编写递归”吧!使用 Lambda 表达式构建递归函数很多朋友认为这很容...
    99+
    2023-06-17
  • 使用python怎么编写一个扎金花小程序
    本篇文章为大家展示了使用python怎么编写一个扎金花小程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。程序需要实现的点:先生成一付完整的扑克牌给5个玩家随机发牌统一开牌,比大小,输出赢家是谁主要...
    99+
    2023-06-06
  • 怎么使用Java编写Palm OS程序
    这篇文章主要讲解了“怎么使用Java编写Palm OS程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Java编写Palm OS程序”吧!  一、Sun的解决方案: KVM、 Co...
    99+
    2023-06-03
  • 使用Java编写一个插入排序算法
    使用Java编写一个插入排序算法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、算法原理插入排序法:所谓插入排序法乃是将一个数目插入该占据的位置。假设我们输入...
    99+
    2023-05-31
    java 插入排序 ava
  • 怎么用Netty编写一个服务端程序
    本篇内容主要讲解“怎么用Netty编写一个服务端程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Netty编写一个服务端程序”吧!1.编写一个Serve...
    99+
    2024-04-02
  • 如何使用Lambda表达式编写递归
    这篇文章主要介绍“如何使用Lambda表达式编写递归”,在日常操作中,相信很多人在如何使用Lambda表达式编写递归问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Lambda表达式编写递归”的疑惑有所...
    99+
    2023-06-17
  • #4 编写第一个程序
    前言 前面三节为Python程序的运行打下了坚实的基础,是骡子是马拉出来遛遛,所以从这节开始,将开始正式进入Python的编程环节,唯有不忘初心,才能方得始终! 一、Python交互模式编写 学习任何一门语言,都要有仪式感,比如中文的第一...
    99+
    2023-01-30
    第一个 程序
  • 怎么用java编写一个circular类
    可以通过以下步骤来用Java编写一个Cirular类:1. 创建一个Circular类的Java文件,例如Circular.java...
    99+
    2023-10-18
    Java
  • 怎么用Python编写一个自动关机程序
    本篇内容介绍了“怎么用Python编写一个自动关机程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、实现效果2、实现步骤模块导入impo...
    99+
    2023-06-26
  • Java方法与递归怎么使用
    今天小编给大家分享一下Java方法与递归怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。java中方法的使用什么是方法...
    99+
    2023-06-30
  • 利用Java编写一个出敬业福的小程序
    目录1、前言2、定义工具类3、生成"福"主类4、运行测试5、素材图片1、前言 “福”的由来: 姜太公封一大批神仙时,却把自己的妻子叶氏封为...
    99+
    2024-04-02
  • Java中的什么场景使用递归,如何使用递归
    目录什么是递归?递归有什么优点?迭代和递归的区别递归的三个条件什么场景下适合使用递归场景一场景二总结Java 递归算法一、概述二、应用场景三、示例四、实际示例五、递归的缺点什么是递归...
    99+
    2024-04-02
  • 用python编写一个小程序,如何用python编写软件
    大家好,给大家分享一下用python编写一个小程序,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 1、python可以写手机应用程序吗? 我想有人曲解意思了,人家说用python开发渣蔽一个手机app,不是说用手机敲写py...
    99+
    2023-10-22
    python
  • Javascript尾递归编程怎么实现
    本篇内容介绍了“Javascript尾递归编程怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!尾递归编程思想递归是编程中必不可少的一环...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作