C 语言支持递归,即一个函数可以调用其自身。但在使用递归时,程序员需要注意定义一个从函数退出的条件,否则会进入死循环。

语法格式如下:

  1. void recursion()
  2. {
  3. recursion(); /* 函数调用自身 */
  4. }
  5. int main()
  6. {
  7. recursion();
  8. }

数的阶乘

  1. #include <stdio.h>
  2. double factorial(unsigned int i)
  3. {
  4. if(i <= 1)
  5. {
  6. return 1;
  7. }
  8. return i * factorial(i - 1);
  9. }
  10. int main()
  11. {
  12. int i = 15;
  13. printf("%d 的阶乘为 %f\n", i, factorial(i));
  14. return 0;
  15. }

斐波那契数列

  1. #include <stdio.h>
  2. int fibonaci(int i)
  3. {
  4. if(i == 0)
  5. {
  6. return 0;
  7. }
  8. if(i == 1)
  9. {
  10. return 1;
  11. }
  12. return fibonaci(i-1) + fibonaci(i-2);
  13. }
  14. int main()
  15. {
  16. int i;
  17. for (i = 0; i < 10; i++)
  18. {
  19. printf("%d\t\n", fibonaci(i));
  20. }
  21. return 0;
  22. }