1.什么是递归函数
首先,递归函数是一个函数,其使用就是在一个函数中调用另一个函数。
注:使用递归函数一定要设置递归的结束条件,不然会陷入死循环直到栈溢出。
//递归函数的基本格式
int fun()
{
代码块;
fun();
return 返回值;
}
2.递归函数的分类
2.1直接调用
int fun1()
{
代码块;
fun1();
return 返回值;
}
2.2间接调用
int fun2()
{
代码块;
fun1();
return 返回值;
}
3.递归函数的运行原理(例子配图解)
求一个整数的阶乘
#include <stdio.h>
int Fac(int n); //函数的声明,在函数前使用函数必须有声明
int main(int argc, char *argv[])
{
int a = 0; //定义一个整型变量a
puts("please input a integer:"); //输出字符串,puts自动换行
scanf("%d",&a); //输入a的值
printf("%d\n",Fac(a)); //调用函数Fac(),并打印它的值
return 0;
}
int Fac(int n) //定义一个返回值为整型的函数,接收一个整型的参数
{
if(n == 1 || n == 0) //如果接收的参数为0或1,返回1,也代表Fac(1) = 1,且是递归结束条件
return 1;
else
return n * Fac(n-1);//此处使用递归,原理如下图解
}
END