EMS快递单号联想

浏览:1590 发布日期:2014/06/05 分类:基础算法
给出1张单号,联想出之后的n张单号
PHP版本:<pre><?php

    print_r(ems('EK702111856CS',10));
    
    function ems($code,$num){
        if(!preg_match('/[a-z-A-Z]{2}[0-9]{9}[a-z-A-Z]{2}/',$code)) die ('起始值验证失败!不是有效的EMS运单号!');
        $start=(float)substr($code,2,8);
        for($i=0;$i<$num;$i++){
            $a=(string)($start+$i);
            $b=(11-(($a[0]*8+$a[1]*6+$a[2]*4+$a[3]*2+$a[4]*3+$a[5]*5+$a[6]*9+$a[7]*7)%11));
            $b=$b<10?$b:(($b-10)*5);
            $arr[]=$code[0].$code[1].$a.$b.$code[11].$code[12];
        }
        return $arr;
    }

?>
javascript版本:<script type="text/javascript">
    alert(ems('EK702111856CS',10));
    function ems(code,num){
        var a,b,arr=[],start=parseFloat(code.substr(2,8));
        for(var i=0;i<num;i++){
            a=String(start+i);
            b=(11-((a[0]*8+a[1]*6+a[2]*4+a[3]*2+a[4]*3+a[5]*5+a[6]*9+a[7]*7)%11));
            b=b<10?b:((b-10)*5);
            arr.push(code[0]+code[1]+a+b+code[11]+code[12]);
        }
        return arr;
    }
</script>
评论( 相关
后面还有条评论,点击查看>>