Даны два случайных трехзначных числа $a и $b. Реализуйте процесс умножения столбиком числа $a на число $b. Приветствую всех неравнодушных! Я новичок, помогите, пожалуйста, решить задачу!
PHP в столбик не умеет, ему и не нужно - есть арифметические операторы например. Подозреваю, что задача вам дана для закрепления какого-то материала, например же, обработки массивов. С помощью той же арифметики. При этом, не совсем понятно, как автор этой задачи логически объясняет, в первую очередь, себе, почему, вдруг, PHP должен утратить способность к умножению неоднозначных чисел. Но то такое Алгоритмов для умножения в столбик два. Тот, что попроще, примерно такой: 1. Разбить второе число в массив (например с помощью str_split()) на порядки - единицы, десятки, сотни, дополняя элементы недостающими нулями(для сотен это два нуля) 2. Объявить переменную-буфер для результата. 3. Запустить обработку этого массива в цикле, дополняя результат умножения каждого элемента с первым множителем в буфер 4. Вывести буфер
Тема перенесена в стрёмный раздел "Сделайте за меня", т.к. автор не показал даже попытки разобраться самостоятельно. --- Добавлено --- Я не умею плавать, поплавайте за меня. Я не умею играть на пианино...
Добрый день, Елена! Может это Вам поможет: PHP: <html> <body> <? $a = rand(100, 999); $b = rand(100, 999); echo <<<HTML <table> <tr> <td align = "center" width=60>x</td> <td align = "right">$a<br>$b</td> </tr> <tr> <td colspan=2 ><hr></td> </tr> HTML; $aArr = array_reverse(str_split($a)); $bArr = array_reverse(str_split($b)); $res = 0; $resStrAll = ""; $mr=0; foreach($bArr as $i => $numB){ $d=0; $buf=""; foreach($aArr as $j => $numA){ $m = $numB * $numA + $d; if($m>9) { $d = intval($m/10); $m -= $d * 10; } else $d = 0; $buf .= $m; } if( $d>0 ) $buf .= $d; $resStr = strrev($buf); $resInt = intval($resStr); if($resInt == 0) $resStr = 0; $resStrAll .= "<div style='margin-right:{$mr}px;'>$resStr</div>"; $res += $resInt * pow ( 10, $i ); $mr += 9; } echo <<<HTML <tr> <td align = "center" >+</td> <td align = "right">$resStrAll</td> </tr> <tr> <td colspan=2 ><hr></td> </tr> <tr> <td align = "center" >Result:</td> <td align = "right">$res</td> </tr> <td colspan=2 ><hr></td> </table> HTML; $res = $a * $b; echo "<br>Result of multiplication by operator *: <div><br>$a * $b = $res</div>"; ?> </body> </html> Удачи!
Дополнение https://github.com/VladimirKheifets/PHP-class--columnOperations Demo: https://www.alto-booking.com/developer/columnOperations/ p.s. если хотите тестировать на двух случайных трехзначных числах, то измените в файле index.php PHP: //Test column multiplication $multiplier = rand(100, 999); $multiplicand = rand(100, 999); Удачи!
Дополнение class columnOperations версия 2.0 от 20.11.2023 К операциям умножению и сложению добавлены вычитание и деление в столбик https://github.com/VladimirKheifets/PHP-class--columnOperations Demo: https://www.alto-booking.com/developer/columnOperations/