Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用递归创建单行数模式_Java_Recursion - Fatal编程技术网

Java 使用递归创建单行数模式

Java 使用递归创建单行数模式,java,recursion,Java,Recursion,编写一个递归方法,输出一个数字序列。 打印顺序(4)打印1 2 3 4 3 2 1 public class Practice { public static void main(String[] args){ printSequence(4); } public static void printSequence(int n){ System.out.print(n); if(n>1){

编写一个递归方法,输出一个数字序列。 打印顺序(4)打印1 2 3 4 3 2 1

public class Practice {
    public static void main(String[] args){
        printSequence(4);
    }

    public static void printSequence(int n){
        System.out.print(n);

        if(n>1){
            printSequence(n-1);
        }

        System.out.print(n);
    }
}
我的代码在那里,输出很明显,但它是43211234。我想要的输出是1234321,我不知道如何到达那里。除非我可以使用两种方法,但只能在main中调用一种,否则我不认为我可以使用两种方法。
有人知道我怎样才能得到我想要的结果吗:
12341
递归地,并且只使用一种方法?

我建议你备份并解决一个更简单的问题。修改
printSequence()
以打印
1 2 3 4
。要做到这一点,您需要做哪些更改?@Code学徒我会使用:if(n==1)System.out.print(1);else{printSequence(n-1);System.out.print(“+n”);}你在寻求什么样的帮助?@AMC只是关于如何获得我需要的输出的帮助。当4作为参数输入时,如何使递归方法输出一个字符串,如:
1231
。鉴于这是您的代码,我们希望您做的不仅仅是“思考”,这并不重要:拿起一支笔和一些纸,写出实际发生的情况,因为这将帮助您了解如何解决问题。我们从n=4开始,打印4,然后递归,然后再次打印4。在这个递归中,我们从n=3开始,我们打印3,然后我们递归,然后我们再次打印3。鉴于此,您如何确保得到的不是4321234而是1234321?例如,你能在打印东西时更改吗?你能改变递归的“方向”吗?等