专栏首页陶士涵的菜地[PHP] 算法-两个n位的二进制整数相加问题PHP实现

[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);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [javascript] 支付宝小程序网络GET请求

    支付宝小程序的开发管理里===> 服务器域名白名单添加 自己的主域名 , 所有二级域不需要都加上

    陶士涵
  • [日常]nginx与网络事件模型

    陶士涵
  • [PHP]命令执行函数的区别

    陶士涵
  • 【leetcode】背包问题

    完全背包的特点恰是每种物品可选无限件,所以就可以并且必须采用 w = W[i]…carry 的顺序循环:

    JNingWei
  • 在PyTorch中使用DistributedDataParallel进行多GPU分布式模型训练

    先进的深度学习模型参数正以指数级速度增长:去年的GPT-2有大约7.5亿个参数,今年的GPT-3有1750亿个参数。虽然GPT是一个比较极端的例子但是各种SOT...

    deephub
  • 小程序体验版 新用户登录不了

    console.log(wx.getStorageSync("userInfo").id )

    用户6663311
  • C# 字典 Dictionary 的 TryGetValue 与先判断 ContainsKey 然后 Get 的性能对比

    本文使用 benchmarkdotnet 测试字典的性能,在使用字典获取一个可能存在的值的时候可以使用两个不同的写法,于是本文分析两个写法的性能。

    林德熙
  • 时序分析笔记系列(四)、系统时序题目分析

    假设存在posetive clock skew为10ns,问最高电路电路频率?系统能忍受的最大posetive clock skew。(Tset_up=1ns ...

    根究FPGA
  • Docker Compose 1.18.0 之服务编排详解

    一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过serv...

    搜云库
  • 2018年下半年,别错过这些深度学习项目!

    今年早些时候,作为尝试记录深度学习领域进展的第一步,本文作者Ross Taylor创建了网站Papers With Code。该网站是一个将深度学习研究论文与其...

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券