zoukankan      html  css  js  c++  java
  • php 递归

    递归是一种函数调用自身的机制。

    递归必须要有边界条件,也就是递归出口(退出递归)

    递归前进段和递归返回段,也就是最后得到的值

    当边界条件不满足时,递归前进;当边界条件(递归出口)满足时,递归返回。

    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);
  • 相关阅读:
    Redis
    Redis入门
    C#编程--语句(分支语句)
    C#编程--运算符
    C#编程--输入和输出
    C#编程进制转换
    C#语言课程11月10日
    C#语言课程11月9日
    C#语言课程11月7日
    C#语言课程11月6日
  • 原文地址:https://www.cnblogs.com/myzxh/p/9753151.html
Copyright © 2011-2022 走看看