位置:首页 > > C语言递归

C语言递归

递归是在自相似的方式重复项目的过程。同样适用于编程语言以及其中,如果一个程序可以调用同一个函数被调用的函数的递归调用,如下函数内使用。

void recursion()
{
   recursion(); /* function calls itself */
}

int main()
{
   recursion();
}

C语言编程语言支持递归,即要调用的函数本身。不过,在使用递归,程序员需要谨慎确定从函数的退出条件,否则会在无限循环。

递归函数是解决许多数学问题想计算一个数阶乘非常有用的,产生斐波系列等

数字阶乘

以下是一个例子,它计算阶乘用于使用一个递归函数给定的数:

#include <stdio.h>

int factorial(unsigned int i)
{
   if(i <= 1)
   {
      return 1;
   }
   return i * factorial(i - 1);
}
int  main()
{
    int i = 15;
    printf("Factorial of %d is %d
", i, factorial(i));
    return 0;
}

当上述代码被编译和执行时,它产生了以下结果:

Factorial of 15 is 2004310016

斐波那契系列

以下是另一个例子,其给定参数产生斐波串联使用一个递归的函数:

#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	%n", fibonaci(i));
    }
    return 0;
}

当上述代码被编译和执行时,它产生了以下结果:

0	1	1	2	3	5	8	13	21	34