█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 3619

Problema 0x32 - Sumar dos números muy grandes

  • Autor: jocarmp08
  • Fecha: 2021-04-04 03:05:42 UTC (Hace alrededor de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.034 s 6 KBi
#2
Correcto
0.031 s 3 KBi
#3
Correcto
0.021 s 3 KBi
#4
Correcto
0.025 s 3 KBi
#5
Correcto
0.028 s 4 KBi
#6
Correcto
0.03 s 3 KBi
#7
Correcto
0.022 s 3 KBi
#8
Correcto
0.027 s 3 KBi
#9
Correcto
0.025 s 3 KBi
#10
Correcto
0.031 s 3 KBi
#11
Correcto
0.024 s 3 KBi
#12
Correcto
0.031 s 4 KBi
#13
Correcto
0.026 s 3 KBi
#14
Correcto
0.026 s 3 KBi
#15
Correcto
0.029 s 3 KBi
#16
Correcto
0.032 s 3 KBi
#17
Correcto
0.026 s 3 KBi
#18
Correcto
0.021 s 5 KBi
#19
Correcto
0.029 s 3 KBi
#20
Correcto
0.029 s 6 KBi
#21
Correcto
0.024 s 3 KBi
#22
Correcto
0.022 s 3 KBi
#23
Correcto
0.023 s 3 KBi
#24
Correcto
0.03 s 4 KBi
#25
Correcto
0.024 s 3 KBi
#26
Correcto
0.022 s 3 KBi
#27
Correcto
0.028 s 3 KBi
#28
Correcto
0.025 s 3 KBi
#29
Correcto
0.036 s 4 KBi
#30
Correcto
0.043 s 4 KBi
#31
Correcto
0.034 s 4 KBi
#32
Correcto
0.038 s 4 KBi
#33
Correcto
0.037 s 4 KBi
#34
Correcto
0.033 s 4 KBi
#35
Correcto
0.033 s 4 KBi
#36
Correcto
0.041 s 3 KBi
#37
Correcto
0.037 s 4 KBi
#38
Correcto
0.029 s 4 KBi
Puntos totales: 100 / 100

Código

def add_two_big_numbers(big_number_one, big_number_two):
    larger, small = None, None
    if len(big_number_one) > len(big_number_two):
        larger = big_number_one
        small = big_number_two
    else:
        larger = big_number_two
        small = big_number_one

    carry = 0
    small_number_index = len(small) - 1
    larger_number_index = len(larger) - 1
    while True:
        if small_number_index < 0 and carry == 0:
            break

        if larger_number_index < 0 and carry > 0:
            larger.insert(0, carry)
            break

        small_number_digit = small[small_number_index] if small_number_index >= 0 else 0
        addition = small_number_digit + larger[larger_number_index] + carry
        larger[larger_number_index] = addition % 10
        carry = addition // 10
        small_number_index -= 1
        larger_number_index -= 1

    print(''.join(map(str, larger)))


big_number_one = [int(char) for char in input()]
big_number_two = [int(char) for char in input()]
add_two_big_numbers(big_number_one, big_number_two)