工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C 再帰

C 再帰

このチュートリアルでは、例を使用して C プログラミングで再帰関数を作成する方法を学習します。

自分自身を呼び出す関数は、再帰関数と呼ばれます。そして、この手法は再帰として知られています。


再帰の仕組み

void recurse()
{
    ... .. ...
    recurse();
    ... .. ...
}

int main()
{
    ... .. ...
    recurse();
    ... .. ...
}
<図>

再帰は、再帰を防ぐための条件が満たされるまで続きます。

無限再帰を防ぐために、if...else ステートメント (または同様のアプローチ) を使用して、1 つのブランチが再帰呼び出しを行い、他のブランチがそうでない場合に使用できます。


例:再帰を使用した自然数の和

#include <stdio.h>
int sum(int n);

int main() {
    int number, result;

    printf("Enter a positive integer: ");
    scanf("%d", &number);

    result = sum(number);

    printf("sum = %d", result);
    return 0;
}

int sum(int n) {
    if (n != 0)
        // sum() function calls itself
        return n + sum(n-1); 
    else
        return n;
}

出力

Enter a positive integer:3
sum = 6

最初は sum() main() から呼び出されます number の関数 引数として渡されます。

n の値を sum() 内 最初は 3 です。次の関数呼び出し中に、2 が sum() に渡されます 関数。このプロセスは n まで続きます は 0 です。

nの場合 0、if に等しい 条件が失敗し、else 部分が実行され、整数の合計が最終的に main() に返されます 関数。

<図>

再帰の利点と欠点

再帰はプログラムをエレガントにします。ただし、再帰は通常非常に遅いため、パフォーマンスが重要な場合は、代わりにループを使用してください。

そうは言っても、再帰は重要な概念です。これは、データ構造とアルゴリズムで頻繁に使用されます。たとえば、ツリー トラバーサルなどの問題では再帰を使用するのが一般的です。


C言語

  1. C# Hello World - 初めての C# プログラム
  2. C# のキーワードと識別子
  3. C# 変数と (プリミティブ) データ型
  4. C# 演算子
  5. C# のビット単位およびビット シフト演算子
  6. C# の基本的な入力と出力
  7. C# 式、ステートメント、およびブロック (例付き)
  8. C# コメント
  9. C# switch ステートメント
  10. C# 三項 (? :) 演算子
  11. 再帰およびループ プログラムを使用した Java のフィボナッチ数列