[PHP] 算法-两个n位的二进制整数相加问题PHP实现
程序员文章站
2022-06-15 23:18:23
两个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 ......
两个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);
上一篇: Ruby on Rails注册激活系统
下一篇: IDM 激活