PHP代码古埃及乘法javascript

PHP code Ancient Egyptian Multiplication javascript

本文关键字:javascript 古埃及 代码 PHP      更新时间:2023-09-26

算法如下。如果A和B是乘以,我们反复地将A乘以2,将B除以2,直到B不能被进一步分割,也就是直到它的值变为0(记住,这是整数除法)。在每个步骤中只要B是奇数,我们将相应的A值添加到我们正在生成的产品中。在结束时,具有相应奇数B值的A值之和为产品明白了吗?

这里有一个例子:

如果要相乘的两个整数是34和19,则运算为:

A       B       Comment
34     19       add A to the product, B is odd
68      9        add A to the product, B is odd
136    4        ignore this A value, B is even
272    2        ignore this A value, B is even
544    1        add A to the product, B is odd

将所有具有奇数B值的A值相加,得到:

34+68+544=646=>最终产品

正如您的算法所说。

$a = 34; 
$b = 19;
$total = 0;
do{
    $mod = $b % 2;
    if($mod){
        $total = $total + $a;
    }
    echo $mod." - ".$a." - ".$total . "<br/>"; //Steps
    $a = $a * 2;
    $b = floor($b/2);
}while($b > 0);
echo $total; // 646

步骤:

Mod       $a         $total
---------------------------
1     -   34     -   34
1     -   68     -   102
0     -   136    -   102
0     -   272    -   102
1     -   544    -   646