1871 - Zero vale Zero

Ignorando o coitado do zero, como se o zero à esquerda não fosse o suficiente...

Descrição

Solução

O problemsetter desse problema nos fez um grande favor: ele já deixou claro que os números a serem somados não terão zero, ou seja, só precisamos tirar o zero do resultado da soma. Com isso, podemos transformar a soma em string e retirar todos os zeros presentes no resultado. Em cada linguagem eu lido com isso de uma maneira diferente, confira como eu fiz na sua linguagem escolhida.

#include <string.h>
#include <stdio.h>

int main(){
    int M, N, n, soma;
    char aux, resposta[11];

    while(scanf("%d %d", &M, &N)){
        if(!M && !N)    break;

        memset(resposta, '\0', sizeof(resposta));

        n = 0;
        soma = M + N;
        while(soma){
            if(soma % 10)   resposta[n++] = (soma % 10) + '0';
            soma /= 10;
        }

        for(int i = 0; i < n/2; ++i){
            aux = resposta[i];
            resposta[i] = resposta[n - i - 1];
            resposta[n - i - 1] = aux;
        }

        printf("%s\n", resposta);
    }

    return 0;
}

Last updated