搜索
首页电脑教程电脑知识不熟悉Java递归方法的代码

不熟悉Java递归方法的代码

不熟悉Java递归方法的代码

这也是个循环的方法 初学者可能难看懂...我解释一下

例如 那个fun()方法里面的参数是100吧 我把它改一下 改成2好吧

这个递归方法的目的是累加,和循环累加的结果相同,只是执行方式不同。

程序执行的过程如下:

当你传2进去时. 程序会执行else里面的内容

也就是return temp+fun(temp-1);

实际是返回的是:2+fun(2-1);

也就是: 2+fun(1) 把原来的那个参数3改为了2;

我开始说了吧 这是个累加的程序 所以把3提出来赋给 前面定义好的sum 所以现在的sum=2;

因为这是个递归的方法 所以接下来又要重复执行这个fun(int temp)方法 ;

只是现在的参数变成了1

所以 接下来程序会这样走 :

因为参数是1 所以会进入到if里面

所以会返回1;

所以现在的sum就应该是之前的sum加上现在的fun(1)返回的1

so.....now sum就应是:2+1=3;

我只是举了其中的两个数之间的循环 其他的98个数之间的循环也是这样的

总之递归就是一直调用自己 直到不能满足条件时就不会调用自己了

你看看吧 可能有点多 我想解释的更加清楚一点 之前我也遇到过 不过我没问过别人 没看懂或者是不懂的再问我.....

Java递归算法高收请进!用递归实现

作的挺好看的阿,能做出这样水准的界面,这个小问题应该难不到你吧。

这里的问题是:

1. 设计这个图的结构,最简单的就是用数组了。

2. 怎么枚举相连的节点。简单的说就是判断左上、右上、左、右、左下、右下的问题。

3. 怎么依次判断颜色相同问题,最简单的算法是淹没法。就是从上面6个方向开始找,找到下一个点后,就在从6个方向开始找。。。

大概的代码如下:

class Rabbit

{

final int D_UP_LEFT = 1 ;

final int D_UP_RIGHT = 2 ;

final int D_LEFT = 3 ;

final int D_RIGHT = 4 ;

final int D_DOWN_LEFT = 5 ;

final int D_DOWN_RIGHT = 6 ;

getColor () ;

getCloseRibbit (int direction)

{

... // 这里实现获取相邻指定方向兔子的函数

// 如果没有返回null .

}

int getColor () {}

List checkColor ()

{

ArrayList list = new ArrayList () ;

doCheckColor (list, this) ;

return list ;

}

void doCheckColor (List list, Rabbit r)

{

if (r.getColor () != this.getColor () || list.contains (r))

return ;

list.add (this) ;

for (int i = D_UP_LEFT ; i

{

Rabbit next = r.getCloseRibbit (i) ;

if (next != null)

next.doCheckColor (list, r) ;

}

}

}

结果的list就是你要的相同颜色的小兔子。

JAVA如何使用递归方法实现从1到m中取nn

使用数组的递归:

public class Test12 {

static int M = 4;

static int N = 3;

static int[] a= new int[]{1,2,3,4};

static int[] b = new int[N];

public static void main(String[] args){

C(M,N);

}

static void C(int m,int n){

int i,j;

for(i=n;i

b[n-1] = i-1;

if(n>1)

C(i-1,n-1);

else {

for(j=0;j

System.out.print(a[b[j]] + " ");

System.out.println();

}

}

}

}

输出:

1 2 3

1 2 4

1 3 4

2 3 4

java实现递归运算n!输入n如果不是整型提示重新输

java 实现递归运算n!,输入n,如果不是整型,提示重新输...

port java.util.Scanner;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Test {

public int jiecheng(int num) {// 递归阶乘

if (num > 1)

return num * jiecheng(num - 1);

else if (num == 1)

return 1;

else

return 0;

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);// 从键盘获取输入

String num = "";

Pattern p = Pattern.compile("\d+");// 正则表达式,匹配(1到N位)整数

Matcher m = null;

int k = 0;

while (true) {

System.out.print("请输入一个整数:");

num = sc.nextLine();// 获取一行输入

m = p.matcher(num);

if (m.matches()) {

k = Integer.valueOf(num);// 字符串转整数

break;

} else

System.out.println("不是整数,请重新输入!");

System.out.println();

}

System.out.println(new Test().jiecheng(k));// 调用阶乘的方法

}

}

喜居宝地千年旺 福照家门万事兴 喜迎新春

以上是不熟悉Java递归方法的代码的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:Excel办公网。如有侵权,请联系admin@php.cn删除
修复任务栏颜色不变的4种方法在Windows 10 -Minitool中修复任务栏颜色不变的4种方法在Windows 10 -Minitool中May 02, 2025 am 12:50 AM

您是否曾经遇到过“任务栏颜色不变”的问题?您对这个问题感到困惑吗? PHP.CN的这篇文章重点介绍此问题,并为您提供了几种可帮助您修复的方法。

远程桌面服务当前很忙 - 目标解决方案远程桌面服务当前很忙 - 目标解决方案May 02, 2025 am 12:49 AM

尝试连接到Windows Server时,您可能会遇到远程桌面服务当前忙的错误。 Windows Server设置和用户设备都可能是此错误的原因。无论原因是什么,php.cn都可以帮助您

修复:扫描病毒时窗户关闭修复:扫描病毒时窗户关闭May 02, 2025 am 12:48 AM

Windows在扫描病毒时会关闭? Windows Defender的完整扫描会使PC关闭?当这个问题发生时该怎么办?在PHP.CN的这篇文章中,您将学习一些可行的解决方案。

网络错误消息出现在chatgpt中?尝试7种修复方法! -  Minitool网络错误消息出现在chatgpt中?尝试7种修复方法! - MinitoolMay 02, 2025 am 12:47 AM

CHATGPT网络错误是编写代码或AI编写长答案时可能发生的常见问题。如果您遇到此问题,该怎么办?不用担心,尝试在这篇文章中使用PHP.CN收集的几种方式来轻松获取

修复Windows Update Check为更新灰色修复Windows Update Check为更新灰色May 02, 2025 am 12:44 AM

获取Windows更新的一种方法是单击Windows Update中的“检查更新”按钮。但是,如果检查更新按钮的检查是灰色的,您知道要解决问题吗?在这篇文章中,PHP.CN软件将引入一些甲基苯丙胺

完整的固定前景指南,而不是节省胜利的选秀完整的固定前景指南,而不是节省胜利的选秀May 02, 2025 am 12:43 AM

Outlook草稿电子邮件通常存储在草稿文件夹中。但是,有时您可能会遇到“ Outlook不保存草稿”的问题。在这种情况下,您应该如何找到电子邮件草案并处理此问题?在这篇文章中

iCloud邮件登录/注册|如何访问iCloud邮件PC/Android -MinitooliCloud邮件登录/注册|如何访问iCloud邮件PC/Android -MinitoolMay 02, 2025 am 12:42 AM

这篇文章提供了iCloud邮件登录和注册指南。您可以创建一个免费的iCloud邮件帐户来使用它来在网络或任何设备上发送或接收电子邮件。还包括有关如何在Windows 10/11或Android上访问iCloud邮件的说明。

下载并安装Windows ADK用于Windows [完整版本] -Minitool下载并安装Windows ADK用于Windows [完整版本] -MinitoolMay 02, 2025 am 12:41 AM

当您尝试提供Windows 11/10时,您需要Windows ADK(Windows评估和部署套件)的相应版本来帮助您完成任务。这篇来自PHP.CN的帖子会教您如何下载和安装Windows ADK。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境