В Python целые числа имеют произвольную точность, поэтому строки длиной до 100 цифр можно преобразовать в int, сложить и вернуть str результата.
Сложение огромных чисел, представленных строками
В Python целые числа имеют произвольную точность, поэтому строки длиной до 100 цифр можно преобразовать в int, сложить и вернуть str результата.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте функцию, которая получает массив чисел, записанных строками (длина каждой строки может достигать 100 символов), и возвращает их общую сумму, также в строковом виде.
Пример 1: Ввод: ["123", "456"] Вывод: "579"
Пример 2: Ввод: ["999999999999999", "1"] Вывод: "1000000000000000"
Ответ
В Python целые числа имеют произвольную точность, поэтому строки длиной до 100 цифр можно преобразовать в int, сложить и вернуть str результата.
def sum_large_numbers(values):
total = 0
for value in values:
total += int(value)
return str(total)
Для ['123', '456'] получится '579', для ['999999999999999', '1'] — '1000000000000000'. Пустой массив по выбранному контракту возвращает '0'. Некорректная строка приводит к ValueError; если требуется строгий десятичный формат, валидируйте его заранее.
Преобразовывать через float нельзя: оно потеряет точность. В языках с фиксированным размером целых нужен BigInteger либо поразрядное сложение строк с переносом. Стоимость зависит от числа цифр, а не только количества элементов массива.