1. 编写一个函数接收一个参数 必须是整型 返回值也是整型 如: 321->123  , 9200->29 2. 编写fibonacci sequence 函数, 然后讲一下如何优化这个代码.3. 请说出一个自己碰到过的最糟糕的BUG ,并说明是如何解决的.4. 自定义函数里经常会出现重复的代码比如(资源的创建和解除). 请讲一下如何处理这些重复的部分.5. 请说出一个自己喜欢的设计模式和不喜欢的设计模式,并说明理由。6. 求1-10000 之间所有数字总合的一个函数(要求用效率最高的方法写)

解决方案 »

  1.   


    //1
    function c($a){
        $s = '';
        for($i=strlen($a); $i>=0; $i--)$s .= $a{$i};
        unset($a, $i);
        return intval($s);
    }
    //6
    function c($n){
        return ($n+1)*$n/2;
    }
    // Or
    function c($n){    return array_sum( range(1,$n) );}
      

  2.   

    //1
    function c($a){
        $s = '';
        for($i=strlen($a); $i>=0; $i--)$s .= $a{$i};
        unset($a, $i);
        return intval($s);
    }    unset($a, $i);
        return intval($s);这两个函数是什么意思呢?
      

  3.   

    unset($a, $i); 取消标量的定义
    return intval($s);这两个函数是什么意思呢?intval()是将一个变量转换为整形
      

  4.   

    unset($a, $i); 取消标量的定义 干嘛要这样,垃圾回收?
      

  5.   

    function q1($n){
    preg_match_all("/./",$n,$matches);
    return intval(implode('',array_reverse($matches[0])));
    }
    echo q1(9200);
      

  6.   

    function q1($n){
    return intval(implode('',array_reverse(explode(',',chunk_split($n,1,',')))));
    }
    echo q1(9200);
      

  7.   


    /* 1 */
    function strreverse($param){
        return intval(strrev($param));
    }/* 2 首先斐波纳契数列函数的实现一般第一反应都是通过函数的递归调用实现
    想要优化就需要将递归使用循环去实现,速度会快N倍
    */function fib($i){
        $j = 1;$k=1;$m=0;
        if($i == 0){ return 0; }
        if($i == 1 || $i == 2) return 1;
        for($n = 2;$n < $i ; $n++){
            $m = $k;
            $k = $j+$k;
            $j = $m;
        }
        return $k;
    }
    /* 6  1楼的第一个方法就行  */其他根据你自己的经历去回答就完了,^^