给出两个数字,让我们说,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);
}
}
Run Code Online (Sandbox Code Playgroud)
你只需要使用递归来计算.然后,当函数返回时,您就在路上了.这可以通过以下方式实现:
public void countUpAndDown(int start, int end) {
System.out.println(start);
if (end == start) return;
countUpAndDown(start+1, end);
System.out.println(start);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3730 次 |
| 最近记录: |