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
BigIntegerouBigDecimal, é 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.