您的位置:

php递归函数阶乘,PHP递归算法

本文目录一览:

php计算1到8的阶乘1!+2!+3!+......+8!

//php计算1到8的阶乘1!+2!+3!+......+8!

$sum = 0;

for ($i = 1; $i  9; $i++) { 

$sum += jc($i);

}

echo $sum;

// 计算一个数的阶乘函数

function jc($num){

$tmp = 1;

$tmp2 = $tmp;

for ($i=1; $i  $num; $i++) { 

if( $tmp  $num){

$tmp2 *= ($tmp+1);

++$tmp;

}

}

return $tmp2;

}

望采纳,谢谢。

怎么用递归函数算阶乘?

代码如下:

vim test.sh

#!/bin/bash

read -p "Num:" num   #read 函数读取手动输入一个数值

result=1              #首先定义一个变量值为1

for i in `seq $num`   #i在num 中从小到大依次取值

do

result=$[ $result * $i ]

done

echo "The result is: $result"

扩展资料

递归函数的作用和循环的方法效果一样,即递归函数本质上是一个方法的循环调用,注意:有可能会出现死循环。因此,使用递归函数时,一定要定义递归的边界(即什么时候退出循环)。

来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:

fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n

所以,fact(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理。

于是,fact(n)用递归的方式写出来就是:

def fact(n):

if n==1:        return 1

return n * fact(n - 1)

参考资料来源:

百度百科——递归函数

急!用php 递归法求n的阶乘

?php

function f($n)

{

$out = -1;

if($n0)

echo "输入不能是负数";

else if($n==0||$n==1)

$out=1;

else $out=f($n-1)*$n;

return $out;

}

echo f(6);

?