<상수>, 2908번
문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
출력
첫째 줄에 상수의 대답을 출력한다.
예제 입력 1
734 893
예제 출력 1
437
풀이
이 문제는 세 자리의 수 2개를 입력한 후 그 숫자를 뒤집어서 값을 비교해 더 큰 값을 출력하는 프로그램을 제작하는 것이다. 나는 변수 A, B에 세 자리의 수 2개를 입력받은 후 while문을 각각 돌려서 배열 num1과 num2에 각각 뒤집어진 수를 저장했다. 그 이후에 dap1과 dap2 변수를 선언해서 이 변수에 각 자릿수 만큼 값을 곱해 최종적인 값을 집어 넣었다. 그 이후에 if문을 이용해서 더 큰 값을 출력하도록 제작했다.
#include <stdio.h>
int main(void)
{
int A, B;
int i = 0;
int num1[102];
int num2[102];
int dap1 = 0, dap2 = 0;
scanf("%d %d", &A, &B);
while (A != 0)
{
num1[i] = A % 10;
A /= 10;
i++;
}
i = 0;
while (B != 0)
{
num2[i] = B % 10;
B /= 10;
i++;
}
dap1 = 100 * num1[0] + 10 * num1[1] + num1[2];
dap2 = 100 * num2[0] + 10 * num2[1] + num2[2];
if (dap1 > dap2)
printf("%d", dap1);
else
printf("%d", dap2);
return 0;
}