Сложение очень больших чисел
В этом задании нужно написать функцию, позволяющую сложить 2 очень больших целых числа.
Так как структура данных в PHP, хранящая числа, ограничена размером, мы не можем сложить, к примеру, 278378473848374873847384738478347483743878 и 23784923428346283472346234623746238423.
Попробуйте выполнить этот код:
<?php
echo 278378473848374873847384738478347483743878 + 23784923428346283472346234623746238423;
Он вернет нам полную ерунду.
Мы даже просто не сможем присвоить большое число в переменную:
<?php
$a = 278378473848374873847384738478347483743878;
var_dump($a);
Этот код тоже не даст нам желаемого результата.
Однако, мы можем записать эти числа в виде строк:
<?php
$a = '278378473848374873847384738478347483743878';
var_dump($a);
И, в общем-то, мы можем написать функцию для сложения двух целых чисел в виде строк. Её интерфейс будет выглядеть следующим образом:
function bigSum(string $x1, string $x2): string
Подсказка #1. К символам строки можно обращаться с помощью квадратных скобок, как будто это элементы массива.
$x1[0] // вернёт первый символ строки
Подсказка #2. Вспомните школу... Если быть точнее, то как там учили складывать числа.
Поехали!
Решение
Внимание, в уроке есть ошибка. Обратите внимание на этот комментарий.
Комментарии