티스토리 뷰

Algorism/Problem_kr

9.Turn Add

귀몽 2010.09.08 03:49
=====================================
Turn Add
=====================================

일단 어떤 수를 받아서 그 수를 뒤집은 다음 뒤집어진 수를 원래의 수에 더하는 과정을 뒤집어
서 더하기 라고 합니다. 그 답이 회문(palindrome, 앞뒤 어느 쪽에서 읽어도 같은 말이 되는 어구.
예: eye, madam, 소주만병만주소)이 아니면 회문이 될 때까지 이 과정을 반복합니다.
예를 들어 처음에 195에서 시작해서 다음과 같이 네 번 뒤집어서 더하기를 반복하면 9,339라는
회문이 됩니다.
  195       786       1,473        5,214
+ 591    + 687    + 3,741    + 4,125
-----------   -----------   -----------   -----------
   786      1,473      5,214       9,339
대부분의 정수는 이 방법을 몇 단계만 반복하면 회문이 됩니다. 하지만 예외도 있습니다. 회문
을 찾을 수 없는 것으로 밝혀진 첫 번째 수는 196입니다. 하지만 회문이 없다는 것이 증명된 적
은 없습니다. 어떤 수가 주어졌을 때 회문이 있으면 출력하고, 그 회문을 찾기까지 뒤집어서 더하
기를 반복한 횟수를 출력하는 프로그램을 만들어야 한다.
테스트 데이터로 쓰이는 수는 모두 뒤집어서 더하기를 1,000번 미만 반복해서 회문을 찾을 수 있
는 수고, 그렇게 만들어진 회문은 4,294,967,295보다 크지 않다고 가정해도 됩니다.

[입 력]
첫 번째 줄에는 테스트 케이스를 나타내는 정수 N(0<=100)이 들어있고, 그 아래로 N개의 줄에
걸쳐서 회문을 구해야 하는 정수가 한 줄에 하나씩 들어있다.

[출 력]
N개의 각 정수에 대해 회문을 발견하는 데 필요한 최소한의 반복 횟수를 출력하고, 스페이스를
한 칸 출력한 다음, 그 회문을 출력합니다.

>>입력예          
3
195
265
750
>>출력예
4 9339
5 45254
3 6666

'Algorism > Problem_kr' 카테고리의 다른 글

11.Cat in Hat  (0) 2010.09.08
10.What is Code-Breking?  (0) 2010.09.08
9.Turn Add  (0) 2010.09.08
8.The Blocks Problem  (0) 2010.02.19
7.Interpreter  (0) 2010.02.19
6.Graphical Editor  (0) 2010.02.19
TAG
댓글
댓글쓰기 폼
공지사항
Total
72,232
Today
7
Yesterday
23
링크
«   2018/12   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
글 보관함