Java 再帰の作成方法: 最初に明確な再帰終了条件を作成し、次に判定条件を設定します。コードは [private static int sumNum(int n){if (n == 1){return 1;] です。 }return n sumNum(n-1)}]。
Java 再帰の作成方法:
プログラムがそれ自体を呼び出すプログラミング手法は、再帰と呼ばれます。アルゴリズムとしての再帰は、プログラミング言語で広く使用されています。プロセスまたは関数には、その定義または説明の中で直接的または間接的に自身を呼び出すメソッドがあります。通常、大規模で複雑な問題を、元の問題と同様の小さな問題に変換して解決します。再帰的戦略のみが必要です。必要なプログラムの数は少ないです。問題解決プロセスで必要となる複数の繰り返し計算を記述するため、プログラム コードの量が大幅に削減されます。再帰の力は、有限のステートメントを使用してオブジェクトの無限のコレクションを定義することにあります。一般に、再帰には境界条件、再帰的な前方セグメント、および再帰的な戻りセグメントが必要です。境界条件が満たされない場合、再帰は続行され、境界条件が満たされる場合、再帰は戻ります。
まず、最も単純な合計の例を見てみましょう。
<span style="font-size:18px;">public static void main(String[] args) { System.out.println(sumNum(100)); //输出:5050 } //求1-100的和 private static int sumNum(int n) { if (n == 1) { return 1; } return n + sumNum(n-1); }</span>
以下では、再帰を使用してフィボナッチ数列を実装します。
黄金分割数列としても知られるフィボナッチ数列は、0、1、1、2、3、5、8、13、21、... のような数列を指します。数学では、フィボナッチボナッチ数列は次のように再帰的に定義されます: F(0)=0、F(1)=1、F(n)=F(n-1) F(n-2) (n≥2、n ∈N*) In現代物理学、準結晶構造、化学、その他の分野では、フィボナッチ数列が直接応用されています。
//用递归求解 public static int fib(int n) { if (n == 0) return 0; if (n == 1 || n == 2) return 1; return fib(n - 1) + fib(n - 2); } //用循环求解 public static int fib2(int n) { int a = 0, b = 1, c = 1; if (n == 0) return 0; if (n == 1 || n == 2) return 1; for (int i = 0; i < n - 1; i++) { c = a + b; a = b; b = c; } return c; } //用数组求解 public static int fib3(int n) { int[] arr = new int[n + 1]; arr[0] = 0; arr[1] = 1; for (int i = 2; i <= n; i++) { arr[i] = arr[i - 1] + arr[i - 2]; } return arr[n]; }
階乗を計算する別の例を見てみましょう。
階乗は、1808 年にクリスチャン クランプ (1760-1826) によって発明された算術記号です。数学用語です。
正の整数の階乗(英語:factorial)は、その数値以下のすべての正の整数の積であり、0 の階乗は 1 です。自然数nの階乗はn!と書きます。つまり、n!=1×2×3×...×nです。階乗は、0!=1、n!=(n-1)!×n のように再帰的に定義することもできます。
//用递归计算阶乘 public static int jc(int n) { //结束条件 if ( n == 1) return 1; //递归条件 return n * jc(n-1); } //用for循环实现阶乘 public static int jc2(int n) { int sum = 1; for (int i = 1; i <= n; i++) { sum *= i; } return sum; }
再帰条件:
1. 終了条件:再帰終了と呼ばれる、明確な再帰終了条件が必要です。
2. 再帰条件: 再帰アルゴリズム.
再帰の特徴:
1. シンプルかつ明確: 再帰アルゴリズムは一般に読みやすいです。一目見ると、演算構造が数学の自然言語に非常に近いことがわかります。
2. メモリ消費量が多い: 再帰呼び出しプロセス中に、システムはスタックを開き、各層の戻り点、ローカル量などを保存します。再帰が多すぎると、スタック オーバーフローなどが簡単に発生する可能性があります。したがって、プログラムの設計に再帰アルゴリズムを使用することは一般的に推奨されません。
関連する学習に関する推奨事項: Java 基本チュートリアル
以上がJava 再帰の簡単な例を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。