そのため、この間ずっと、再帰に関する私の問題はケースを理解することだと思っていました。私の問題は、再帰的なケースの値を理解することであることがわかりました。たとえば、配列の一部を逆方向に出力します。
オリジナルトライ
public static void printBackwards(int i, int j, char[] A){
if(i == j){
System.out.println(A[i]);
}
else{
printBackwards(i+1,j,A);
}
}
実用的な試み
public static boolean printBackwards(int i, int j, char[] A){
if(i == j){
System.out.println(A[i]);
return true;
}
else{
if(printBackwards(i+1,j,A) == true){
System.out.println(A[i]);
return true;
}
else{
printBackwards(i+1,j,A);
}
}
return false;
}
しかし、これは効率的な再帰ですか? またはそれを介してより良い方法はありますか?これは、私がそれを書いて見たときに理解できる唯一の方法です。