2つの数字が与えられた場合、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);
}
}
正しい方向に私を置く助けを借りてください –