Rectangular multiplication

mail@pastecode.io avatar
unknown
python
6 months ago
1.2 kB
4
Indexable
Never
def rectangle_multiplication(num1, num2):
    # Convert the numbers to strings to make manipulation easier
    num1_str = str(num1)
    num2_str = str(num2)

    # Determine the lengths of the two numbers
    len1 = len(num1_str)
    len2 = len(num2_str)

    # Create a result array to store intermediate products
    result = [0] * (len1 + len2)

    # Iterate through the digits of num1 in reverse order
    for i in range(len1 - 1, -1, -1):
        carry = 0
        d1 = int(num1_str[i])

        # Iterate through the digits of num2 in reverse order
        for j in range(len2 - 1, -1, -1):
            d2 = int(num2_str[j])

            # Calculate the product of the current digits and add to the result
            temp_sum = d1 * d2 + carry + result[i + j + 1]
            carry = temp_sum // 10
            result[i + j + 1] = temp_sum % 10

        # Add any remaining carry to the appropriate position in the result
        result[i + j] += carry

    # Convert the result back to an integer
    result_str = ''.join(map(str, result))
    result_int = int(result_str)

    return result_int

# Example usage:
num1 = 123456789
num2 = 987654321
result = rectangle_multiplication(num1, num2)
print(result)  # Output: 121932631112635269