PHP 不用加减乘除做加法

 1 <?php

 2     #不用加减乘除做加法

 3     #思路:使用位运算实现

 4     #先算出二者不进位的相加结果,xor实现

 5     #再算出二者的进位结果,位与和位移实现

 6     #最后把两个结果相加

 7 

 8     function cplus($num1, $num2) {

 9         if ($num2 == 0) {

10             return $num1;

11         }

12 

13         $sum = $num1 ^ $num2;

14         $carry = ($num1 & $num2) << 1;

15 

16         return cplus($sum, $carry);

17     }

18 

19     echo cplus(123, 4567);

20 ?>

4690

你可能感兴趣的:(PHP)