一个函数直接或间接的调用自己
递归必需有一个明确的终止条件
该函数所处理的数据规模必须在递减
这个转化必须是可解的
递归
易于理解
速度慢
所需存储空间大(函数调用需要发送形参与实参,还要对调用函数压栈,这些都需要分配内存空间)
循环
不易理解
速度快
所需存储空间小
#include#include long factorial(int n){ if(1==n) //递归结束条件 return 1; else return factorial(n-1)*n; }int main(){ int n; printf("请输入你要求阶乘的数:"); scanf("%d",&n); printf("你所求的阶乘是:%ldn",factorial(n)); return 0; }
运行结果:
image.png
作者:桓宇Harry
链接:https://www.jianshu.com/p/cafcd2765e0b



