Как напрограммировать классическое школьное умножение столбиком в python?

Рейтинг: -5Ответов: 1Опубликовано: 19.03.2023

требуется только алгоритм, чтобы python считал по нему

Ответы

▲ 0Принят
def multiply(num1, num2):
    # конвертируем числа в строки, чтобы легче работать с каждой цифрой
    str_num1 = str(num1)
    str_num2 = str(num2)

    # создаем массив для хранения промежуточных результатов
    results = [0] * (len(str_num1) + len(str_num2))

    # переворачиваем строки для удобства
    str_num1 = str_num1[::-1]
    str_num2 = str_num2[::-1]

    # вычисляем произведение
    for i in range(len(str_num1)):
        for j in range(len(str_num2)):
            results[i + j] += int(str_num1[i]) * int(str_num2[j])

    # обработка переносов
    carry = 0
    for i in range(len(results)):
        results[i] += carry
        carry = results[i] // 10
        results[i] %= 10

    # удаляем ведущие нули
    while len(results) > 1 and results[-1] == 0:
        results.pop()

    # переворачиваем результат обратно и конвертируем в число
    return int(''.join(map(str, results[::-1])))
# тест
print(multiply(5, 5))