给出两个数字,让我们说,start = 1并且end = 4,我试图按顺序计算所有数字然后向下计数.不允许循环
1 2 3 4 3 2 1
我尝试编写递归函数.该功能正在计算正常并且它的打印1 2 3 4但是当我尝试倒数时,我期待4 3 2 1但是我进入了一个无限循环.原因是起始值在递归中丢失,我不知道从下往上计数时要停在哪里.
我花了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);
    }
}
你只需要使用递归来计算.然后,当函数返回时,您就在路上了.这可以通过以下方式实现:
public void countUpAndDown(int start, int end) {
    System.out.println(start);
    if (end == start) return;
    countUpAndDown(start+1, end);
    System.out.println(start);
}