문제

https://www.acmicpc.net/problem/1357

설명

이번문제는 바로 전에 했던 2908 상수 문제에서 사용한 소스를 재활용 하여 사용할 수 있었으나, 그걸 감안해도 추가적으로 수정해야할 작업으 많았다. 수의 자리를 뒤집는 부분을 함수화 시키고 입력으로 받아들일 수 있는 최대자릿수가 1000 이므로 이에 따라 수정하여 함수를 만들었다. 조금 시간이 걸리긴 했지만 어렵지는 않았다.

코드

#include <stdio.h>

int rev(int input)
{
    if (input < 10)
        return input;
    else
    {
        int temp[4];
        temp[0] = input / 1000; // 1000자리
        temp[1] = (input - (temp[0]*1000))/100; // 100자리
        temp[2]  = ((input%100) - (input % 10))/10; //10의 자리
        temp[3] =  (input % 10); // 1의 자리
        if (temp[1] == 0 && temp[0] == 0)
            input = temp[2] + (temp[3] * 10);
        else if (temp[0] == 0)
            input = temp[1] + (temp[2]*10) + (temp[3]*100);
        else if (temp[0] != 0)
            input = (temp[3]*1000) + (temp[2]*100) + (temp[1]*10) + temp[0];
        return input;
    }
}
int main() {
    int array[2];
    scanf("%d %d",&array[0],&array[1]);
    printf("%d\n",rev(rev(array[0]) + rev(array[1])));
    return 0;
}