gpt4 book ai didi

java - 在Java中使用递归编写创建路径的方法

转载 作者:行者123 更新时间:2023-12-02 01:03:17 24 4
gpt4 key购买 nike

我编写了一个名为“createPath”的方法,它接受一个整数和一个字符串作为参数。它应该像这样工作:

createPath(0,"a.txt") //prints out "a.txt"
createPath(1,"a.txt") //prints out "folder1/a.txt"
createPath(2,"a.txt") //prints out "folder1/folder2/a.txt"
createPath(3,"a.txt") //prints out "folder1/folder2/folder3/a.txt"

等等......该方法使用递归,因此没有 for/foreach/while 循环。这是我的代码:

public static void recursion(int n, String s) {
if (n == 0) {
System.out.print(s);
} else if (n==1){
System .out.print("folder1/" + s);
} else {
if(n>2) {
recursion(n-1,s);
System.out.print("folder" + n + "/");
} else {
System.out.print("folder1/folder2/");
}
System.out.print(s);
}
}

//expected output: folder1/folder2/folder3/folder4/folder5/a.txt
//actual output: folder1/folder2/a.txtfolder3/a.txtfolder4/a.txtfolder5/a.txt

我的问题是我未能在输出末尾仅打印一次给定的字符串。如何修改代码才能得到预期的输出?

最佳答案

你不需要那么多 if-else。

public static void recursion(int n, String s) {
if (n == 0) {
System.out.print(s);
} else {
recursion(n - 1, "folder" + n + "/" + s);
}
}

关于java - 在Java中使用递归编写创建路径的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60388207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com