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