给定两个数字,比如说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);
}
}
任何帮助把我放在正确的方向将有助于 –