考虑到两个数字,让我们说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);
}
}
答案 0 :(得分:5)
您只需使用递归进行计数。然后,当函数返回时,您就在路上了。这可以通过以下方式实现:
public void countUpAndDown(int start, int end) {
System.out.println(start);
if (end == start) return;
countUpAndDown(start+1, end);
System.out.println(start);
}
答案 1 :(得分:0)
您可以将其设置为从1&gt; 3开始计数,并且&gt; = 4执行a - 降至1。
答案 2 :(得分:0)
试试这个
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);
}