まず、再帰の概念とにおけるその役割
を再帰的に呼ばれるプログラミングのスキル(再帰)自分自身を呼び出すプログラム。再帰アルゴリズム広く使われているプログラミング言語の一種です。プロシージャまたは関数は、通常、その定義または説明、再帰が小さい問題を解決するために元の問題と同様層に大規模で複雑な問題である、方法で直接的または間接的に自分自身を呼び出すだけ問題解決のプロセスを記述することができる以下のプログラムを必要とする大幅にコードサイズを低減する、計算に必要繰り返されます。限られたステートメントを使用してオブジェクトを定義する機能の再帰無限集合。一般的に、再帰的な必要性は、境界条件、進み期間の再帰と再帰的なリターンを持っています。境界条件が満たされている、再帰的なリターン、境界条件は、再帰的な前進を満たしていない場合。
n個を達成!、その一例として、この再帰的な方法を導入するために、再帰的なバイナリ変換の使用をフィボナッチフィボナッチ列の量をカウントする多くの方法があります。次の再帰は、バイナリコード(詳細には、所与の注記)について詳細に説明しないここに与えられているに変換します。
第二に、再帰的n個!
する#include <stdio.hに> // 再帰関数を実現intをファクト(INT N-) { IF(== N- 0 ) { // 場合のn == 0リターン1すなわち0!1 = リターン1。; } 他 { 戻り N- *ファクト(N- 1); // 再帰式 } } int型(メイン) // メイン関数{ int型N-、SUM; scanfの(" %のD "、およびN-); // 入力 SUM = ファクト(N-); のprintf(" Dの%」、SUM); // 出力 戻り 0 ; }
三、nは!配列の実装コード(説明することはあまりありません)
する#include <stdio.hの> int型のmain() { int型のn; scanf関数(" %のD "、&N) INT、T = N、事実= 1。// 当N == 0时= 1事実ながら(N> 1 ) { 事実 * = N-- 。 } のprintf(" %d個の\ n " 、事実)。 リターン0 ; }