Retorne a soma de dois números (com uma reviravolta)

Espera, um desafio muito difícil para retornar a soma de dois números? Bem, neste caso, os números podem ter 1000 dígitos!

Então, qual é a pegadinha? Você precisa fazer a soma como se estivesse fazendo isso manualmente em uma folha de papel; portanto, a conversão da string numérica para um literal numérico é basicamente proibida.

Crie uma função que:

  • Recebe dois números como strings.
  • Calcula a soma desses dois números.
  • Retorna o resultado como uma string.

Exemplos

sum("12132000", "12171979") ➞ "24303979"

sum("4666", "544") ➞ "5210"

sum("1521512512512512515", "898989898989988998899898") ➞ "898991420502501511412413"

sum("5125515215521515", "125261616261626") ➞ "5250776831783141"

sum("6666666666666666666666666666", "99999999999999999999999") ➞ "6666766666666666666666666665"

sum("123456789123456789123456789", "987654321987654321987654329876543") ➞ "987654445444443445444443453333332"

Observações

  • Todos os números são inteiros positivos sem zeros à esquerda.
  • Lembre-se de como somar dois números EM UMA FOLHA DE PAPEL; esse é o processo.
  • Sua função deve ser executada em menos de 10 segundos porque o Edabit tem um limite de tempo.
  • O uso de classes Number, como BigInteger ou BigDecimal, é proibido — isso descaracterizaria o propósito e o nível de dificuldade associados a este desafio.
  • Uma versão recursiva deste desafio pode ser encontrada neste link.