首页 > 技术文章 > 大数相加 两个或多个数

ksy-c 2020-06-02 15:29 原文

    $arr = [12,2000222000040,54222];
    echo arr_sum($arr);
function arr_sum(array $arr) : int { $temp = [0]; $result = ''; while(count($arr)>0){ foreach($arr as $key => $val){ $num = substr($val,-1); //取最后一位 if($num>0) $temp[] = $num; $val = substr($val,0,-1); //截去最后一位 if($val<1) unset($arr[$key]); //如果数据已加完,清除 else $arr[$key] = $val; } $all = array_sum($temp); $next = intval($all/10); if(count($arr)==1&&$next==0){ //仅剩最后一个元素且无进位数,直接拼接最后一个元素 $result = (String)end($arr).($all%10).(String)$result; break; }else{ $result = ($all%10).(String)$result; $temp = [$next]; } } return $result; }

  

推荐阅读