前言
本系列文章是笔者学习数据结构的笔记,如有不妥之处欢迎指正
什么是递归:
套娃
代码示例
不同函数间的调用
#include<stdio.h>
void AAA();
void BBB();
void CCC();
int main()
{
AAA();
return 0;
}
void AAA()
{
printf("AAA\n");
BBB();
printf("111\n");
}
void BBB()
{
printf("BBB\n");
CCC();
printf("222\n");
}
void CCC()
{
printf("CCC\n");
}
输出结果为
AAA
BBB
CCC
222
111
分析
自己调用自己
我套我自己
#include<stdio.h>
int f(int n)
{
if(n==0) //注意设置结束点防止死递归
{
printf("————\n");
return 1;
}
else
{
printf("%d\n",n);
f(n-1);
}
}
int main()
{
int n=3;
printf("%d",f(n));
return 0;
}
输出
3
2
1
————
1
分析
- 同函数间调用的递归
递归的应用举例
阶乘
#include<stdio.h>
long long int f(int n)
{
if(n==1||n==0)
return 1;
else
return n*f(n-1);
}
int main()
{
int n=3;
printf("%d",f(n));
return 0;
}
输出
6