目录
递归概念
//递归就是函数自己调用自己
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
printf("hehe");
main();
return 0;
}
//陷入了死循环
递归例子
例1:阶乘计算
//算n的阶乘
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int Func(int i)
{
if (i == 0)
return 1;
else
return (i * Func(i - 1));
}
int main()
{
int i = 0;
scanf("%d", &i);
int a = Func(i);
printf("%d", a);
return 0;
}
//先递推到临界值,再回归。
例2:按顺序打印每一位
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void Printf(int i)
{
if (i >= 9)
Printf(i / 10);
printf("%d", i % 10);
}
int main()
{
int i;
scanf("%d", &i);
Printf(i);
return 0;
}
例3:运行时堆栈
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int Func(int i)
{
printf("%d", i);
if (i < 100000)
Func(i+1);
else
printf("%d", i);
return 0;
}
int main()
{
int i = 0;
scanf("%d", &i);
Func(i);
return 0;
}
递归误区
递归程序会不断的展开,在展开的过程中,我们很容易就能发现,在递归的过程中会有重复计 算,⽽且递归层次越深,冗余计算就会越多。
标签:return,函数,递归,int,初学,Func,printf,main From: https://blog.csdn.net/hsy1603914691/article/details/141870841