これは質問1です。整数を別の整数で除算して答えを返す再帰的な解法を書いてください。あなたの再帰関数divide
が終了条件を持っていないと、常に自分自身を呼び出しますので、例えば7分の35 = 5この再帰の例はどのように動作しますか?私はスタックオーバーフローエラーを取得し続ける
public class Division
{
public static void main(String[] args)
{
int a = 10;
int b = 5;
int answer = divide(a,b);
return;
}
private static int divide(int a, int b)
{
int answer = a/b;
return divide(a,b);
}
}
第5
のような何かであるように、負になりましたメソッドの "停止条件"にする必要があります。これは、メソッドが再帰的に呼び出しを停止し、再帰的な結果を返さない条件です。次に、除算を使用せずに除算を実装する方法について考えてみましょう。 –
また、再帰に関するもう1つの重要なこと - 再帰呼び出しの前に何らかの形で引数(少なくとも1つ)を変更する必要があります。そして、この変更により、各ステップで停止条件に近づくはずです。再帰はある時点で終了する可能性があります。 –