반응형
문제풀이
>기존 숫자와 뒤집은 숫자를 합하여 결국 앞뒤가 구분없는 숫자를 만드는게 목표(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);
}
}
반응형
'ACM준비 > 기타' 카테고리의 다른 글
Bicoloring (0) | 2015.01.08 |
---|---|
Complete Tree Labeling (0) | 2015.01.08 |
Self-describing Sequence (0) | 2015.01.08 |
Stacks of Flapjacks (0) | 2015.01.08 |
TheArcheologist'sDilemma (0) | 2015.01.08 |