ACM준비/기타
Reverse and Add
조규현15
2015. 1. 8. 10:29
반응형
문제풀이
>기존 숫자와 뒤집은 숫자를 합하여 결국 앞뒤가 구분없는 숫자를 만드는게 목표(ex 98789)
>최대크기를 고려하는게 중요
배울점
>기존의 int를 넘는 unsigned int 또는 long을 사용함으로써 해결을 할 수 있다.
>reverse함수에서 간단한 산술연산으로 구할 수 있다.
소스>성공
#include <stdio.h>
unsigned int reverse(unsigned int n)
{
unsigned int n2 = 0;
while (n)
{
n2 = (n2 * 10) + (n % 10);
n /= 10;
}
return n2;
}
int main()
{
int Case, count;
unsigned int n, n2;
scanf("%d", &Case);
while (Case--)
{
scanf("%lu", &n);
count = 0;
while (1)
{
n2 = reverse(n);
if (n2 == n)
break;
n += n2;
count++;
}
printf("%d %lu\n", count, n);
}
}
반응형