void recursion() { recursion(); /* 函数调用本身 */ } int main() { recursion(); }
C语言支持递归,即一个调用自身的函数。但是在使用递归时,程序员需要小心定义函数的退出条件,否则它将进入无限循环。
递归函数对于解决许多数学问题非常有用,例如计算一个数的阶乘、生成斐波那契级数等。
数的阶乘
#include <stdio.h> unsigned long long int factorial(unsigned int i) { if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 12; printf(Factorial of %d is %d\n, i, factorial(i)); return 0; }
输出:
Factorial of 12 is 479001600
斐波那契系列
以下示例使用递归函数为给定数字生成斐波那契(Fibonacci)系列
#include <stdio.h>int fibonacci(int i) { if(i == 0) { return 0; } if(i == 1) { return 1; } return fibonacci(i-1) + fibonacci(i-2);}int main() { int i; for (i = 0; i < 10; i++) { printf(%d\t\n, fibonacci(i)); } return 0;}
输出:
0 1 1 2 3 5 8 13 21 34
相关C语言视频教程推荐:《C教程》
本篇文章就是关于c语言递归算法的介绍,希望对需要的朋友有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。