php递归函数实现阶乘,递归函数之阶乘的实现

定义

在编程中函数有一个神奇又难理解的功能,就是递归。递归就是在一个过程中要调用上一步或上几步的结果,使用递归过程的函数就叫递归函数。简单说就是函数自身调用自身(听着有点反自然,像自己举起自己)。

递归实例

除了数学的复杂运算中,生活中也有不少递归的实例:

德罗斯特效应

德罗斯特效应(Droste effect)是递归的一种视觉形式,即一张图片中的某部分与整张图片相同,如下:

235116d8c5d1

20180406205325252.jpg

235116d8c5d1

20180406205355939.jpg

别晕、别晕 -_-

或者在自己身前和身后都放一面镜子,深刻体会一会儿 ▄︻┻┳══━一

递归实现

接下来就用C语言递归函数来实现阶乘功能,源码如下:

#include

int factorial(int n) /*外部定义阶乘函数*/

{

int m;

if (n < 0) /*注意要给函数设置一个递归结束条件*/

{

printf("输入错误!");

return 0;

}

else if (n == 1)

{

m = 1;

}

else

{

m = n * factorial(n-1); /*调用函数factorial()自身*/

}

return m;

}

int main()

{

printf("%d", factorial(5));

}

这是程序大概的运算过程:

235116d8c5d1

20180406220517224.jpg

这里要注意给函数设置一个递归结束条件,可以是 if 判断句,不然函数就无限调用自身下去了,你之前看着镜子中的镜子中的……自己都晕,程序自然是崩溃了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值