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
本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:C语言递归
本文地址:http://www.codeinn.net/c/413.html
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:C语言递归
本文地址:http://www.codeinn.net/c/413.html

