首页 » 网站推广 » 阶乘php递归技巧_递归函数理解

阶乘php递归技巧_递归函数理解

访客 2024-11-25 0

扫一扫用手机浏览

文章目录 [+]

递归函数即自调用函数,在函数体内部直接或间接地自己调用自己,即函数的嵌套调用是函数本身。

该函数必须有一种能够"停滞调用"的机制,如利用if语句。
该机制,被称为递归函数的"出口"。

阶乘php递归技巧_递归函数理解

实例1:

阶乘php递归技巧_递归函数理解
(图片来自网络侵删)

function f1($n){ echo $n." "; $n++;}f1(5);

输出结果5

实例2:

function f1($n){ echo $n." "; $n++; if($n<10){ f1($n); }}f1(5);

输出结果:5 6 7 8 9

实例3

<?phpfunction f1($n){ echo $n." "; $n++; if($n<10){ f1($n); echo $n." "; }}f1(5);?>

输出结果:5 6 7 8 9 9 8 7 6

实例4

function test($n){ echo $n." "; if($n>0) test($n-1); else echo "<-->";}test(10)

输出结果:10 9 8 7 6 5 4 3 2 1 0 <-->

实例5

function test($n){ echo $n." "; if($n>0) test($n-1); else echo "<-->"; echo $n." ";}test(10)

输出结果:10 9 8 7 6 5 4 3 2 1 0 <-->0 1 2 3 4 5 6 7 8 9 10

谈论实际运用中的递归思想运用(阶乘的实现):

阶乘的数学定义:一个正整数的阶乘,是从1一贯乘到它本身的乘积。

阶乘的一个基本算法是:

n的阶乘 = (n-1)的阶乘 n;

个中,1的阶乘是1。

function jiecheng($n){ if($n == 1){ //1的阶乘是1(已知) return 1; } //其他数的阶乘,是 (该数) (该数减一的阶乘) 的乘积 return jiecheng($n-1) $n;}$v1 = jiecheng(5);echo "<br />v1 = $v1";

以下为该函数的仿照调用过程:

$v1 = jiecheng(5)$v1 = jiecheng(4) 5$v1 = (jiecheng(3) 4) 5$v1 = ((jiecheng(2) 3) 4) 5$v1 = (((jiecheng(1) 2) 3) 4) 5

特殊把稳:上一行jiecheng(1)表示哀求1的阶乘,但1的阶乘是"已知"的,为1

$v1 = (((1 2) 3) 4) 5$v1 = ((2 3) 4) 5$v1 = (6 4) 5$v1 = 24 5$v1 = 120

递归函数在类中如何定义?

如: 改名键名的大小写在类中方法的编写

private function changeArrKey($array, $case = 0){ if(!is_array($array)) return $array; $tempArray = array(); $do = ($case === 0)? "strtolower" : "strtoupper"; foreach ($array as $key=>$value){ $key = $do($key); if(is_array($value)){ $value = self::changeArrKey($value); //self 代表当前类 }else{ $value = $do($value); } $tempArray[$key] = $value; } return $tempArray;}

标签:

相关文章

逆站秒DLL,介绍游戏加速背后的技术奥秘

随着互联网的快速发展,网络游戏已成为人们休闲娱乐的重要方式。网络延迟、卡顿等问题始终困扰着玩家。为了解决这一问题,一款名为“逆站秒...

网站推广 2024-12-26 阅读0 评论0

Koro语言,探索编程的全新境界

随着科技的飞速发展,编程语言层出不穷。近年来,一种名为Koro的语言逐渐崭露头角,引起了业界的广泛关注。Koro语言以其独特的特点...

网站推广 2024-12-26 阅读0 评论0

JSF多语言支持,助力企业全球化发展

随着互联网的飞速发展,企业全球化已成为必然趋势。在此背景下,如何为用户提供便捷的多语言服务,成为了企业面临的重要课题。Java S...

网站推广 2024-12-26 阅读0 评论0

In语言魅力,跨越时空的文化交流桥梁

在当今这个全球化日益加深的时代,各国文化交流日益频繁,人们迫切需要一种能够跨越时空、沟通心灵的通用语言。而In语言,作为一种新兴的...

网站推广 2024-12-26 阅读0 评论0