两个大数相加

function strAdd($str1,$str2){
    $res = [];
    if(strlen($str1) > strlen($str2)){
        $str2 = str_pad($str2,strlen($str1),'0',STR_PAD_LEFT);
        $str = $str1;
    }else{
        $str1 = str_pad($str1,strlen($str2),'0',STR_PAD_LEFT);
        $str = $str2;
    }


    //生成一个数组,数组程度为最长数字位数,以避免使用$res[$i-1]运算的时候出现notice
    $res = array_fill(0,strlen($str), 0);


    for ($i=strlen($str)-1; $i>=0 ; $i--) { 
        # code...
        $tmp = $a[$i] + $b[$i];
        $res[$i] += $tmp;
        if($res[$i]>9){
            $res[$i] -=10;
            $res[$i-1] +=1;
        }
    }

    return implode('',$res);



}

 

posted on 2018-07-30 13:22  oceanL  阅读(170)  评论(0编辑  收藏  举报

导航