09-递归
递归
一、递归思想
函数自己调用自己叫递归,递归在程序中一般不常见,所以这里只是简单的介绍一下他的概念及应用。
int fun(int n)
{
fun(2); //无限循环
}
二、递归应用阶乘
5!=5*4*3*2*1
5!=5*4!;
4!=4*3!;
3!=3*2!;
2!=2*1!;
1!=1; //终止条件
n!=n*(n-1)!;
定义递归函数
unsigned int factorial (unsigned int n);
三、中止条件
一定要有一个终止条件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> unsigned int digui(unsigned int n) { if (n==1) { printf("1",n); //结束条件 return 1; } printf("%d*",n); return n*digui(n-1); } main(void) { printf("=%d \n" ,digui(10)); getchar(); getchar(); return 0; }