検索
  • サインイン
  • サインアップ
パスワードのリセットが成功しました

興味のあるプロジェクトをフォローし、それらに関する最新ニュースをチェックしてください

C の再帰

コレクション 205
リーディング 91673
更新時間 2016-09-11

再帰とは、関数の定義の中で関数そのものを使用する方法を指します。

例:
昔々、山があって、その山にお寺がありました。お寺に老僧がいて、若い僧侶に話をしていました。何の話ですか? 「むかしむかし、山があって、その山にお寺がありました。お寺に年老いた僧侶がいて、若い僧侶に物語を語っていました。その物語は何ですか?」山があって、その山にお寺がありました。お寺には老僧がいて、小さな僧侶に物語を語っていました。 .'"

構文形式は次のとおりです:

void recursion(){
   recursion(); /* 函数调用自身 */}int main(){
   recursion();}

C 言語は再帰をサポートしています。つまり、関数はそれ自体を呼び出すことができます。ただし、再帰を使用する場合、プログラマは関数を終了するための条件を定義することに注意する必要があります。そうしないと無限ループに陥ってしまいます。

再帰関数は、数値の階乗の計算、フィボナッチ数列の生成など、多くの数学的問題を解決する上で重要な役割を果たします。

数値の階乗

次の例では、再帰関数を使用して、指定された数値の階乗を計算します。

#include <stdio.h>double factorial(unsigned int i){   if(i <= 1)   {      return 1;   }   return i * factorial(i - 1);}int  main(){    int i = 15;
    printf("%d 的阶乘为 %f\n", i, factorial(i));    return 0;}

上記のコードがコンパイルされて実行されると、次の結果が生成されます:

15 的阶乘为 1307674368000.000000

フィボナッチ数列

次の例では、再帰関数を使用して、指定された数値のフィボナッチ数列を生成します。

#include <stdio.h>int fibonaci(int i){   if(i == 0)   {      return 0;   }   if(i == 1)   {      return 1;   }   return fibonaci(i-1) + fibonaci(i-2);}int  main(){    int i;    for (i = 0; i < 10; i++)    {
       printf("%d\t%n", fibonaci(i));    }    return 0;}

上記のコードをコンパイルして実行すると、次の結果が生成されます:

0112358132134
ホットAIツール
Undress AI Tool
Undress AI Tool

脱衣画像を無料で

AI Clothes Remover
AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undresser.AI Undress
Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

Stock Market GPT
Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

人気のツール
メモ帳++7.3.1
メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版
SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6
ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版
SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)