不熟悉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中文网其他相关文章!

如果HP Smart会自动在Windows 11/10/服务器上安装该怎么办? Microsoft发布了一个实用程序,您可以在线获取KB5034510:Microsoft打印机元数据疑难解答工具以修复自动安装错误。继续阅读此php.cn帖子以查找

NetWlv64.Sys蓝屏是试图启动Windows 11/10操作系统时的常见错误。如何解决此BSOD问题以使PC正常工作?在这篇文章中,您可以找到PHP.CN的一些有用的解决方案。

如果您同时执行多个程序,则调整窗口大小会有所帮助。你们中的大多数人都必须尝试调整日常计算机使用中的窗口大小。此php.cn帖子编制了几种有用的方法,以告诉您如何调整窗口大小。

您是否正在寻找一种禁用Windows 10/11中本地帐户的安全问题的方法?在PHP.CN的这篇文章中,我们将引导您了解如何通过本地组策略编辑和注册表来防止本地帐户使用安全问题

Windows 11 Insider Preview Build 23486宣布将提出一个新功能,即Passkey设置,以改善使用密码的体验。您可以在计算机上创建并添加新的Passkey,并删除其中任何一个。这个php.cn帖子带你走

试图登录OneDrive时,您是否患有“ OneDrive签署您的问题”错误?现在,在PHP.CN的这篇文章中,我们将带您解决如何解决此Onedrive登录问题的方法。

Windows 11和Windows 10桌面图标重叠?在PHP.CN的这篇文章中,我们将为您提供一些有用的解决方案,以帮助您摆脱此Windows桌面图标错误。

OneDrive向您展示了两次使用相同OnEdrive图标的文件资源管理器中的文件夹。那是OneDrive上发生的一些错误。您可以采用有效的方法来修复文件资源管理器中两个OneDrive文件夹的情况。这篇有关PHP.CN的帖子将为您提供帮助


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

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

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

记事本++7.3.1
好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。