説明:プログラムコール自体のプログラミング手法は、再帰と呼ばれます。
それ自体を呼ぶプログラムのプログラミング手法は、再帰と呼ばれます。再帰は、プログラミング言語のアルゴリズムとして広く使用されています。プロセスまたは関数には、その定義または説明において直接的または間接的に自分自身を呼び出す方法があります。通常、大規模で複雑な問題層をレイヤーごとに変換し、解決する元の問題と同様の小さな問題に変換します。再帰戦略では、問題解決プロセスに必要な複数の繰り返し計算を記述するための少数のプログラムのみが必要であり、プログラムのコードの量を大幅に削減します。再帰の能力は、有限ステートメントを使用して無限のオブジェクトセットを定義することにあります。
再帰のための3つの条件:
1。境界条件
2。再帰的進歩セクション
3.再帰的に戻るセグメント
境界条件が満たされていない場合は、再帰的に進みます。境界条件が満たされたら、再帰的に戻します。
以下は2つのプログラムの例です。
1。Javaコードを使用して、5の要因を見つけます。(5 = 5*4*3*2*1の工場)
パッケージorg.wxp.Recursion; / ***5(result = 5*4*3*2*1)*@author championship.wong*/ public class test01 {public static void main(string [] args){system.out.println(f(5)); } public static int f(int n){if(1 == n)return 1;それ以外の場合はn*(n-1)を返します。 }}この質問では、再帰の3つの条件が分析されます。
(1)境界条件:要因、最後の数字、つまり1、return 1に乗算すると、プログラムは最後まで実行されます。
(2)再帰的進歩セクション:現在のパラメーターが1に等しくない場合、引き続き自分自身を呼び出します。
(3)再帰的に戻るセグメント:最大数から開始します。現在のパラメーターが5の場合、それは5*4、つまり5*(5-1)、つまりn*(n-1)です。
2。Javaコードを使用してシーケンスを見つけます:1、1、2、3、5、8 ...... 40桁番号
パッケージorg.wxp.Recursion; / ***シーケンスを見つけます:1、2、3、5、8 ...... 40番目の数字番号*/ public class test_02_fibonacci {public static void main(string [] args){system.out.println(f(6)); } public static int f(int n){if(1 == n || 2 == n)return 1;それ以外の場合は、f(n-1) + f(n-2)を返します。 }} 3.問題の説明:フィボナッチシーケンスの10番目の位置の値を解決しますか? (金色に分割されたシーケンスとしても知られるフィボナッチ配列は、シーケンスを指します:1、1、2、3、5、8、13、21、...数学では、フィボナッチ配列は次の再帰方法で定義されます:f0 = 0、f1 = 1、fn = f(n-1)+f(n-2)
プログラムリスト:
/** *<p>タイトル:Java再帰アルゴリズムの例Fibonacciシーケンス *入力パラメーター:int n *return Type:int */ public static int fun(int n){if(1 == n || 2 == n){return 1; } else {return(fun(n-1) + fun(n-2)); }} / **メソッド説明:メインメソッド *入力パラメーター:string [] args *return type:void * / public static void main(string [] args){system.out.println(fun(10)); }}実行の結果は次のとおりです。
次のようにコードをコピーします:55