zoukankan      html  css  js  c++  java
  • 大整数相加方法

    在计算机中遇到大整数相加方法

    <?php
       
        /**
         * 大整数加法的php实现
         */
        function bigDataAdd($a, $b) {
            $m = strlen($a);
            $n = strlen($b);
            $num = $m > $n ? $m : $n; //取最长数进行循环相加和进位
            $result = ''; //结果
            $flag = 0; //进位标志
            while ($num--) {
                $t1 = 0; //用来存储当前位加数
                $t2 = 0; //用来存储当前位被加数
                if ($m > 0) {
                    $t1 = $a[--$m];
                }
                if ($n > 0) {
                    $t2 = $b[--$n];
                }
                $t = $t1 + $t2 + $flag; //当前位加法运算考虑上一轮的进位标志
                $flag = intval($t / 10); //本轮是否进位
                $result = ($t % 10) . $result; //向高位添加结果
                
            }
            //最高位加完发现还有进位标志,需要再向最高位+1
            if ($flag) {
                $result = $flag . $result;
            }
            return $result;
        }
        
        $a = '999999999999999999999911111111199999999999999';
        $b = '1';
        $result = bigDataAdd($a,$b);
        var_dump($result);exit;
    

      

  • 相关阅读:
    postfix遇到的问题
    SElinux以及防火墙的关闭
    centos查看系统信息
    WINDOWS访问SAMBA提示没有权限
    常用命令
    口才
    【李敖的管理经】
    随笔
    查询MX记录
    bash: ifconfig: command not found
  • 原文地址:https://www.cnblogs.com/haostyle/p/13124014.html
Copyright © 2011-2022 走看看