douluohan3403 2017-11-26 06:29
浏览 53
已采纳

如何使用carry获得两个字符串数的求和?

How can i get summation of two string number using carry?

For example:

$a='134526897556';
$b='251452365655';

I need this ans without using as usual addition($a+$b). I need this like as first (6+5)=11 carry 1 second (5+5)=10 within carry it will be 11 then carry 1.. continuous.

  • 写回答

2条回答 默认 最新

  • donglu5235 2017-11-26 07:04
    关注

    I hope you are looking for this. Try following code to extract single character from reverse and sum that then reverse again and display it.

    $a='5465574541345268975564654';
    $b='2514523656557987';
    echo "Normal sum : ".($a +$b);
    echo "<br>";
    $main_loop = strlen($a);
    if(strlen($a) < strlen($b)){
        $main_loop = strlen($b);
        $a = str_pad($a,strlen($b),"0",STR_PAD_LEFT);
    }
    else
    {
        $b = str_pad($b,strlen($a),"0",STR_PAD_LEFT);
    }
    $carry = 0;
    $str = "";
    $new_sum = "";
    for($i = $main_loop-1;$i>=0;$i--)
    {
    
        $char_a = isset($a[$i])?$a[$i]:0;
        $char_b = isset($b[$i])?$b[$i]:0;
        $sum_char =(string)($char_a + $char_b + $carry);
        $carry = 0;
        $str = (string)$sum_char[0];
    
        if(strlen($sum_char) > 1)
        {
            $carry = $sum_char[0];
            $str = $sum_char[1];
        }
        $new_sum .= $str;
    }
    $new_sum = strrev($new_sum);
    echo $new_sum;
    

    DEMO

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。