怎样检测数组里数据为连续的暴子3位数,暴子4位数,暴子5位数....一直到11位(给点意见吧..)最好代码粘上..谢谢原地址:
http://topic.csdn.net/u/20110513/14/393ffae9-9ecb-40a1-ae5d-df5511b5c9a2.html
怎样检测数组(数字是5~11位的)里数据为连续的暴子3位数,暴子4位数,暴子5位数,暴子6....暴子11位
(下面的分是我任意给的.我可以任意修改)
如果是11位连续的..就输出 100分
如果是10位连续的..就输出 100分
如果是9位连续的.. 就输出 92分
如果是8位连续的.. 就输出 72分
如果是7位连续的.. 就输出 62分
如果是6位连续的.. 就输出 52分
如果是5位连续的.. 就输出 42分
如果是4位连续的.. 就输出 34分
如果是3位连续的.. 就输出 30分

解决方案 »

  1.   

    //如果是这个意思的话,前面帖子中的代码稍微修改一下就可以了。。
    $arr = array(4,7,0,2,4,8,8,8,8,8,3,4,5,6,8,0);
    $arrPrice = array(3 => 30, 34, 42, 52, 62, 72, 92); //分值设置
    $counter =$counterMax = 1;
    for($i = 0; $i < count($arr) - 1; $i ++) {
       if ($arr[$i + 1] == $arr[$i]) {
          $counter ++;
          if ($counter > $counterMax) $counterMax ++;
       }
       else $counter = 1;
    }
    if ($counterMax >= 3) echo "检测到{$counterMax}位连续数字,得分为{$arrPrice[$counterMax]}分";///另外,如果出现223334444这种组合,上面代码只考虑连续位数最多的那一个数字出现的次数。
      

  2.   

    呵呵..缘分阿~~~ 你的很有道理..当初没有想到这些问题你看这样行吗? 
    223334444       比如这样的...
    如果数组里有3个暴子与4个暴子的哪好像就还有很多..
    还得加IF语句吧.
         
    如果数组里有3个3位的暴子  11122233   哪分要X3
    如果数组里有2个3位的暴子和1个4位暴子  111222333   哪分要X2+4位暴子分只需要把他们的分相当输出数组的分数就行了.这样行不???? 
      

  3.   

    $arr = '1222333344444';
    $arrPrice = array(3 => 30, 34, 42, 52, 62, 72, 92); //分值设置
    $counter =$counterMax = 1;$arrTmp = array();for($i = 0; $i < strlen($arr) - 1; $i ++) {
       if ($arr[$i + 1] == $arr[$i]) {
          $counter ++;
          if ($counter > $counterMax) $counterMax ++;
       }
       else {
          if ($counterMax >= 3) $arrTmp[] = $counterMax;
          $counter = $counterMax = 1;
       }
    }if ($counterMax >= 3) $arrTmp[] = $counterMax;if (count($arrTmp) > 0) {
       $score = 0;
       foreach($arrTmp as $v) $score += $arrPrice[$v];
       echo "总分:{$score}";
    }
      

  4.   

    谢谢..要的就是这个.
    请问一下,,能把我提出的这两个问题和成一个程序吗?
    1连续的:http://topic.csdn.net/u/20110513/14/393ffae9-9ecb-40a1-ae5d-df5511b5c9a2.html
    2暴子的:这页分值是1+2   整合在一起