大家好,又见面了,我是你们的朋友全栈君。
递归是一种函数调用自身的机制。
递归必须要有边界条件,也就是递归出口(退出递归)
递归前进段和递归返回段,也就是最后得到的值
当边界条件不满足时,递归前进;当边界条件(递归出口)满足时,递归返回。
PHP的递归非常消耗性能,故而在PHP中尽量避免使用递归
1..写一个求和的函数 输入参数n,可以求到1+2+3+…+n的和
1 function sum($n) { 2 if($n>1) { 3 return $n+sum($n-1); 4 } else { 5 return 1; 6 } 7 } 8 echo sum(100); //1到100的和
2.一个多维数组,如果单元值为数字,则把其值修改为原来的 2 倍. 如 array(1,2,’b’,array(3,’c’,array(4,5))); 变成 array(2,4,’b’,array(6,’c’,array(8,10)));
1 $arr = array(1,2,3,array('c',4,array(5,6))); 2 function multArr($arr) { 3 foreach($arr as $k=>$v) { 4 //如果值是int 则加倍 5 if(is_int($v)) { 6 $arr[$k] = $v*2; 7 }else if(is_array($v) ){ 8 //如果值是数组 9 $arr[$k] = multArr($v); 10 } 11 } 12 return $arr; 13 } 14 print_r(multArr($arr));
3.写递归函数,计算所有单元的和
1 $arr = array(1,2,3,array(4,array(5,6))); 2 function sumHe($arr) { 3 $i = 0; 4 foreach($arr as $k=>$v) { 5 if(is_int($v)) { 6 $i = $i+$v; 7 } else if(is_array($v)) { 8 $i +=sumHe($v); 9 } 10 } 11 return $i; 12 } 13 echo sumHe($arr);
转载于:https://www.cnblogs.com/myzxh/p/9753151.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107274.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...