递归指的是在函数的定义中使用函数自身的方法。见《C Primer Plus》9.3 递归章节
image.png

数的阶乘

  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. }
  16. //15 的阶乘为 1307674368000.000000

斐波那契数列

  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. }
  23. /*
  24. 0
  25. 1
  26. 1
  27. 2
  28. 3
  29. 5
  30. 8
  31. 13
  32. 21
  33. 34*/