C语言讲义——函数递归
Posted tigerlion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言讲义——函数递归相关的知识,希望对你有一定的参考价值。
- 函数直接或间接调用自身
- 每次调用必须获得一些进展,进一步靠近目标
- 达到目标就不再调用自身
- 阅读递归函数不要纠缠于执行过程,而是相信递归函数会顺利完成任务
例:阶乘
0! =1(0 的阶乘定为1)
1! =1
2! =2*1=2
3! =3*2*1=6
n! = n × (n-1) ×…× 2 × 1
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
不用递归
main()
int ret;
int i,j;
for(i=0; i<=10; i++)
ret = 1;
for(j = i; j>1; j--)
ret = ret *j;
printf("%d! = %d\\n",i, ret);
使用递归
#include <stdio.h>
int factorial(int n)
if(n == 0)
return 1;
int ret = n*factorial(n-1);
return ret;
main()
int i;
for(i = 0; i<=10; i++)
int ret = factorial(i);
printf("%d! = %d\\n",i, ret);
练习:斐波那契数列
以上是关于C语言讲义——函数递归的主要内容,如果未能解决你的问题,请参考以下文章