再帰アルゴリズム設計の基本的なアイデアは次のとおりです。
複雑な問題の場合、元の問題をいくつかの比較的単純なサブ問題に分解し、サブ問題が非常に単純になるように直接解決できるようになるまで続行します。つまり、元の問題を再帰的に解決できるように、再帰の出口です。
再帰アルゴリズムを実行する場合、出口を把握する必要があります。つまり、再帰アルゴリズムを実行する際には、明確な再帰エンド条件が必要です。これは非常に重要です。実際、この出口は非常に理解しやすいです。それは単なる状態です。この状態が満たされたとき、私たちはもはや反発しません。
把握する鍵は次のとおりです。
(1)再帰出口
(2)地面のプッシュは徐々に出口に近づきます
再帰とは、メソッド自体がそれ自体と呼ばれる動作です。再帰ヘッダー、つまり再帰を終了する時期を書くように注意してください。
悪循環を避けてください。
例1、再帰的に1〜100を印刷します
パッケージcom.lanhuigu.base; public class cursiontest {private static int i = 0;/** * 1〜100 */public static void testcursion01(){i <= 100){// callback {//コールバックが100未満または等しい場合は、死体を避けます。 System.out.println(i); testcursion01(); // callback:call ashore} else {system.out.println( "game over!");}} public static void main(string [] args){testcursion01(); // print 1〜100}}}}例2:特定の数の要因を再帰的に計算する
パッケージcom.lanhuigu.base; public class cursiontest {/***特定の数の因子を再帰的に計算*/public static int testAftorial(int n){if(n == 1){return 1;} {system.out.println(testFactorial(5)); // 5の要因を計算}}}再帰計算要因については、再帰記憶分析構造図:
最初に長い線を設定し、最終的にラインを閉じてから、魚を塗ります。
要約します
上記は、この記事のJava再帰アルゴリズムの例の例です。誰にとっても役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!