一、5  4  10  8  15  16  () () () ()
用计算机语言填写出这4个空  php二、算出上一题的任意一个位置的值

解决方案 »

  1.   

    $arr = array(5,4);
    for($i = 2; $i < 10; $i ++) {
      switch($i % 2) {
            case 0:  //奇数位
                $arr[$i] = $arr[$i - 2] + 5;
                break;
            case 1:  //偶数位
                $arr[$i] = $arr[$i - 2] * 2;
                break;
      }
    }
    echo implode('&nbsp;',$arr);//Output:
    //5 4 10 8 15 16 20 32 25 64
      

  2.   

    //再改进一下:
    function sn($a0,$a1,$len,$idx = false) {
       //$a0、$a1分别指定数列第1、2个数
       //$len指定数列长度
       //如果传入第3个实参,返回该位置的数字,否则返回整个数列
       $arr = array();
       for($i = 0; $i < $len; $i ++) {
          switch($i % 2) {
                case 0: //奇数位
                    if (!$i) $arr[$i] = $a0;
                    else $arr[$i] = $arr[$i - 2] + $a0;
                    break;
               case 1: //偶数位
                   if ($i == 1) $arr[$i] = $a1;
                   else $arr[$i] = $arr[$i - 2] * 2;
                   break;
          }
       }
       if ($idx === false) return implode('&nbsp;',$arr);
       else return $arr[$idx - 1];
    }//echo sn(5,4,10);
    echo sn(5,4,10,7);  //第7位:20