zoukankan      html  css  js  c++  java
  • [PHP] 算法-两个n位的二进制整数相加问题PHP实现

    两个n位二进制数分别存储在两个n元数组A和B中,这两个整数的和存在一个n+1元的数组C中
    答:
    此问题主要是考察相加进位的问题,元素1+1 =0 并且往前进一位
    ADD-BINARY(A,B)
      C=new integer[A.length+1]
      carry=0
      for i=A.length downto 1
        C[i+1]=(A[i]+B[i]+carry)%2
        carry=(A[i]+B[i]+carry)/2
      C[i]=carry

    <?php
    function addBinary($A,$B){
            $C=array();
            $length=count($A);
            $carry=0;
            for($i=$length-1;$i>=0;$i--){
                    //当前位的数字逻辑 1+1=0 1+0=1
                    $C[$i+1]=($A[$i]+$B[$i]+$carry)%2;
                    //进位的数字逻辑  1+1=1 1+0=0
                    $carry=intval(($A[$i]+$B[$i]+$carry)/2);
            }   
            $C[$i+1]=$carry;
            return $C; 
    }
    
    $A=array(0,1,1,0);
    $B=array(1,1,1,1);
    $C=addBinary($A,$B);
    var_dump($C);
  • 相关阅读:
    HTML介绍
    python D41 前端初识
    mysql索引原理与查询优化
    python D41
    python D40 pymsql和navicat
    python D40 以及多表查询
    python D35 selectors模块
    python D35 I/O阻塞模型
    测试过程
    测试基础
  • 原文地址:https://www.cnblogs.com/taoshihan/p/9536781.html
Copyright © 2011-2022 走看看