顺丰快递单号联想

浏览:2933 发布日期:2014/06/05 分类:基础算法
给出1张单号,联想出之后的单号
PHP版本:<pre><?php
    print_r(sf(755000004593,20));
    function sf($code,$num){
        if(!is_numeric($code) || strlen($code)!=12) die ('起始值验证失败!不是有效的12位数字!');
        for($i=0;$i<$num;$i++){
            if($i==0){
                $start=(float)substr($code,0,11);
                $n12=substr($code,11);
                $arr[]=$a=(string)$code;
            }else{        
                $n12=($a[10]==9?(($a[9]==3||$a[9]==6)?(($n12+5)%10):($a[9]==9?($a[8]%2?($a[8]==9?($a[7]%3?(($n12+9)%10):($a[7]==9?($a[6]==0?(($n12+7)%10):($a[6]==9?($a[5]==9?(($a[4]==3||$a[4]==6)?(($n12+8)%10):($a[4]==9?($a[3]%2?(($n12+4)%10):(($n12+5)%10)):(($n12+9)%10))):(($n12+3)%10)):(($n12+6)%10))):($n12%10))):(($n12+2)%10)):(($n12+3)%10)):(($n12+6)%10))):(($n12+9)%10));
                $arr[]=$a=($start+$i).$n12;
            }
        }
        return $arr;
    }
?>
javascript版本:<script type="text/javascript">
    alert(sf(755000004593,20));
    function sf(code,num){
        var a,n12,arr = [];
        for(i=0;i<num;i++){
            if(i==0){
                arr.push(a=String(code));
                n12=a[11];
                start=parseFloat(a.substr(0,11));
            }else{        
                n12=(a[10]==9?((a[9]==3||a[9]==6)?((n12*1+5)%10):(a[9]==9?(a[8]%2?(a[8]==9?(a[7]%3?((n12*1+9)%10):(a[7]==9?(a[6]==0?((n12*1+7)%10):(a[6]==9?(a[5]==9?((a[4]==3||a[4]==6)?((n12*1+8)%10):(a[4]==9?(a[3]%2?((n12*1+4)%10):((n12*1+5)%10)):((n12*1+9)%10))):((n12*1+3)%10)):((n12*1+6)%10))):(n12%10))):((n12*1+2)%10)):((n12*1+3)%10)):((n12*1+6)%10))):((n12*1+9)%10));
                arr.push(a=(start+i)+String(n12));
            }
        }
        return arr;
    }
</script>
评论( 相关
后面还有条评论,点击查看>>