Java 使用递归上下计数

Java 使用递归上下计数,java,recursion,Java,Recursion,给定两个数字,比如说start=1和end=4,我尝试按顺序向上然后向下数数所有数字。不允许循环 1234321 我试着写一个递归函数。函数的计数很好,它的打印是1234,但是当我尝试倒计时时,我希望4321但是我进入了一个无限循环。原因是递归中的起始值丢失了,我不知道从下往上计数时在哪里停止 我花了4个小时在这上面。我们甚至可以在递归中这样做吗?递归是一种方法吗 public static void countUpDown(int start, int end) { //to prin

给定两个数字,比如说
start=1
end=4
,我尝试按顺序向上然后向下数数所有数字。不允许循环

1234321

我试着写一个递归函数。函数的计数很好,它的打印是1234,但是当我尝试倒计时时,我希望
4321
但是我进入了一个无限循环。原因是递归中的起始值丢失了,我不知道从下往上计数时在哪里停止

我花了4个小时在这上面。我们甚至可以在递归中这样做吗?递归是一种方法吗

public static void countUpDown(int start, int end) {
    //to pring bottom up -> 4 3 2 1
    if ( start > end  && end > 0) {
        System.out.println(end - 1);
        countUpDown(start, end - 1);    
    }

   //to print up 1 2 3 4 
    if (start <= end) {
        System.out.println("-->" + start);
        countUpDown(start + 1, end);
    }
}
公共静态无效倒计时(int开始,int结束){
//从下往上弹起->4 3 2 1
如果(开始>结束和结束>0){
系统输出打印项次(结束-1);
倒计时(开始,结束-1);
}
//打印1234

如果(start您只需使用递归进行向上计数。然后,当函数返回时,您就开始向下计数。这可以通过以下方法实现:

public void countUpAndDown(int start, int end) {
    System.out.println(start);
    if (end == start) return;
    countUpAndDown(start+1, end);
    System.out.println(start);
}

您只需使用递归进行向上计数。然后,当函数返回时,您就开始向下计数。这可以通过以下方法实现:

public void countUpAndDown(int start, int end) {
    System.out.println(start);
    if (end == start) return;
    countUpAndDown(start+1, end);
    System.out.println(start);
}

您可以将其设置为从1->3到>=4的递增计数,将a--down设置为1。

您可以将其设置为从1->3到>=4的递增计数,将a--down设置为1。

试试这个

 private static int  CountUpAndDown(int end, int first, int start)
    {
        if(end==first)
        {
            return -1;
        }
        if (start > end)
        {
           System.out.println(--end);
        }
        else {
            System.out.println(start++);
        }
        return CountUpAndDown(end, first, start);
    }
试试这个

 private static int  CountUpAndDown(int end, int first, int start)
    {
        if(end==first)
        {
            return -1;
        }
        if (start > end)
        {
           System.out.println(--end);
        }
        else {
            System.out.println(start++);
        }
        return CountUpAndDown(end, first, start);
    }

任何帮助我走向正确的方向都将有助于任何帮助我走向正确的方向都将有助于印刷工作,但我认为递归上下更像是一个算法挑战,而不是正确印刷的问题。让我们看看这对他来说是否足够。+1印刷工作,但我认为这更像是一个算法挑战递归地上下移动,而不是正确打印。让我们看看这对他来说是否足够。+1我在这里回答了你,我在这里回答了你