php写两个数相加方法_【PHP学习】实现两个n位二进制整数相加

详细内容

本篇文章讲述的是用PHP实现两个n位二进制整数相加 ,具有参考价值,感兴趣的朋友可以学习了解一下。

问题:两个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);

相关教程:PHP视频教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值