Latest web development tutorials

C rekursif

Rekursi mengacu pada definisi metode fungsi yang digunakan dalam fungsi itu sendiri.

Sebagai contoh:
Ada sekali gunung, gunung ada sebuah kuil, candi memiliki seorang biarawan tua, menceritakan cerita untuk biarawan muda itu! Cerita apa itu? "Ada pernah gunung, gunung ada sebuah kuil, candi memiliki seorang biarawan tua, menceritakan cerita untuk biarawan muda itu! Apa cerita itu?" Ada sekali gunung, gunung ada sebuah kuil, candi memiliki seorang biarawan tua, cerita untuk biarawan muda itu! Apa cerita itu? ...... ''

Sintaks adalah sebagai berikut:

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

int main()
{
   recursion();
}

bahasa C dukungan rekursi, yaitu, fungsi dapat memanggil dirinya sendiri. Namun, bila menggunakan rekursi, programmer harus dicatat bahwa definisi fungsi keluar dari kondisi, jika tidak maka akan masuk ke loop tak terbatas.

fungsi rekursif dalam memecahkan banyak masalah matematika memainkan peran penting, seperti perhitungan faktorial nomor, menghasilkan angka Fibonacci, dan sebagainya.

jumlah faktorial

Contoh berikut menggunakan fungsi rekursif untuk menghitung faktorial dari angka yang diberikan:

#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;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

15 的阶乘为 1307674368000.000000

nomor fibonacci

Fibonacci Contoh berikut menggunakan fungsi rekursif untuk menghasilkan sejumlah tertentu dari kolom:

#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;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

0	1	1	2	3	5	8	13	21	34