如何在PHP中表示乘法

时间:2016-05-19 19:20:35

标签: php html

可以在php中表示数学乘法步骤。我已经尝试但是我无法显示完整的步骤,我只是得到总和并随身携带,我希望得到结果。

例如: -

    4  2  0
     x 5 2
  -----------
     8 4 0
   2 1 0 0
 -------------
  2  9 4 0

这是我的PHP代码。

        $data = array(
    'digit1' => $_POST['value1'],
    'digit2' => $_POST['value2'],
    'digit3' => $_POST['value3'],
    'digit4' => $_POST['value4'],
    'digit5' => $_POST['value5']
);

# ------------------------------------------------------------
$product = $data['digit5'] * $data['digit3'];
$a = $product % 10;
$carry = floor($product / 10);

$product = ($data['digit5'] * $data['digit2']) + $carry;
$b = $product % 10;
$carry = floor($product / 10);

$product = ($data['digit5'] * $data['digit1']) + $carry;
$c = $product;
#-------------------------------------------------------------
$product = $data['digit4'] * $data['digit3'];
$d = $product % 10;
$carry = floor($product / 10);

$product = ($data['digit4'] * $data['digit2']) + $carry;
$e = $product % 10;
$carry = floor($product / 10);

$product = ($data['digit4'] * $data['digit1']) + $carry;
$f = $product;
#-------------------------------------------------------------
$x = intval($c . $b . $a);
$y = intval($f . $e . $d) * 10;
#-------------------------------------------------------------

echo sprintf("%' 10d\n", $c ." " .$b . " ".$a);
echo "<br/>";
echo sprintf("%' 9d\n",  $f. " " .$e ." ". $d);
echo "<br/>";
echo "----------\n";
echo "<br/>";
echo sprintf("%' 10d\n", $x + $y);

这是我的HTML

<form method="POST" action="ui.php">
<input type="textbox" name="value1"/>
<input type="textbox" name="value2"/>
<input type="textbox" name="value3"/>
<input type="textbox" name="value4"/>
<input type="textbox" name="value5"/>
<input type="Submit" name="Submit"/>

2 个答案:

答案 0 :(得分:2)

如果使用str_split()将被乘数转换为值数组,则可以使用pow()函数计算出每一行。

<?php
$multiplier = 420;
$multiplicand = 52;
$result = $multiplier * $multiplicand;
$pad_max = strlen($result);

$multiplicand_values = str_split($multiplicand);

echo str_pad($multiplier, $pad_max, " ", STR_PAD_LEFT) . PHP_EOL;
echo str_pad("x" . $multiplicand, $pad_max, " ", STR_PAD_LEFT) . PHP_EOL;
echo str_pad("-", $pad_max, "-", STR_PAD_LEFT) . PHP_EOL;


for($i = 0; null !== ($digit = array_pop($multiplicand_values)); ++$i)
{
    echo str_pad($multiplier * $digit * pow(10, $i), $pad_max, " ", STR_PAD_LEFT) . PHP_EOL;
}

echo str_pad("-", $pad_max, "-", STR_PAD_LEFT) . PHP_EOL;
echo str_pad($result, $pad_max, " ", STR_PAD_LEFT) . PHP_EOL;

答案 1 :(得分:0)

类似的东西:

$a = intval( $_POST['value1'] . $_POST['value2'] . $_POST['value3']);
$b = array(
    1 => intval( $_POST['value5']),
    10 => intval( $_POST['value4']),
    );

    echo $a . '<br />';
    echo 'x ' . $b[10] . $b[1] .'<br />';
    echo '--------------';

   foreach ($b as $key => $number) {
     echo $key*$number*$a . '<br />';
   }
   echo '--------------<br />';
   echo $a * (($b[10] * 10) + $b[1]); 
相关问题