За последние 24 часа нас посетили 72674 программиста и 3571 робот. Сейчас ищут 2249 программистов ...

процесс умножения столбиком

Тема в разделе "Сделайте за меня", создана пользователем ElenaBugayeva, 14 окт 2023.

  1. ElenaBugayeva

    ElenaBugayeva Новичок

    С нами с:
    5 окт 2023
    Сообщения:
    1
    Симпатии:
    0
    Даны два случайных трехзначных числа $a и $b.
    Реализуйте процесс умножения столбиком числа $a на число $b.

    Приветствую всех неравнодушных!
    Я новичок, помогите, пожалуйста, решить задачу!
     
  2. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    PHP в столбик не умеет, ему и не нужно - есть арифметические операторы например. Подозреваю, что задача вам дана для закрепления какого-то материала, например же, обработки массивов. С помощью той же арифметики.
    При этом, не совсем понятно, как автор этой задачи логически объясняет, в первую очередь, себе, почему, вдруг, PHP должен утратить способность к умножению неоднозначных чисел. Но то такое

    Алгоритмов для умножения в столбик два. Тот, что попроще, примерно такой:
    1. Разбить второе число в массив (например с помощью str_split()) на порядки - единицы, десятки, сотни, дополняя элементы недостающими нулями(для сотен это два нуля)
    2. Объявить переменную-буфер для результата.
    3. Запустить обработку этого массива в цикле, дополняя результат умножения каждого элемента с первым множителем в буфер
    4. Вывести буфер
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.122
    Симпатии:
    1.222
    Адрес:
    там-сям
    Тема перенесена в стрёмный раздел "Сделайте за меня", т.к. автор не показал даже попытки разобраться самостоятельно.
    --- Добавлено ---
    Я не умею плавать, поплавайте за меня. Я не умею играть на пианино...
     
  4. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    Добрый день, Елена!
    Может это Вам поможет:
    PHP:
    1. <html>
    2. <body>
    3. <?
    4. $a = rand(100, 999);
    5. $b = rand(100, 999);
    6. echo <<<HTML
    7. <table>
    8. <tr>
    9. <td align = "center" width=60>x</td>
    10. <td align = "right">$a<br>$b</td>
    11. </tr>
    12. <tr>
    13. <td colspan=2 ><hr></td>
    14. </tr>
    15. HTML;
    16. $aArr = array_reverse(str_split($a));
    17. $bArr = array_reverse(str_split($b));
    18. $res = 0;
    19. $resStrAll = "";
    20. $mr=0;
    21. foreach($bArr as $i => $numB){
    22.     $d=0;
    23.     $buf="";
    24.     foreach($aArr as $j => $numA){
    25.         $m = $numB * $numA + $d;
    26.         if($m>9)
    27.         {
    28.             $d = intval($m/10);
    29.             $m -= $d * 10;
    30.         }
    31.         else
    32.             $d = 0;
    33.         $buf .= $m;
    34.     }
    35.     if( $d>0 ) $buf .= $d;
    36.     $resStr = strrev($buf);
    37.     $resInt = intval($resStr);
    38.     if($resInt == 0) $resStr = 0;
    39.     $resStrAll .= "<div style='margin-right:{$mr}px;'>$resStr</div>";
    40.     $res += $resInt * pow ( 10, $i );
    41.     $mr += 9;
    42. }
    43. echo <<<HTML
    44. <tr>
    45. <td align = "center" >+</td>
    46. <td align = "right">$resStrAll</td>
    47. </tr>
    48. <tr>
    49. <td colspan=2 ><hr></td>
    50. </tr>
    51. <tr>
    52. <td align = "center" >Result:</td>
    53. <td align = "right">$res</td>
    54. </tr>
    55. <td colspan=2 ><hr></td>
    56. </table>
    57. HTML;
    58. $res = $a * $b;
    59. echo "<br>Result of multiplication by operator *: <div><br>$a * $b = $res</div>";
    60. ?>
    61. </body>
    62. </html>
    Удачи!
     
  5. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    #5 Vladimir Kheifets, 2 ноя 2023
    Последнее редактирование: 2 ноя 2023
  6. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия