티스토리 뷰

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
70,666
Today
23
Yesterday
25
링크
«   2018/10   »
  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      
글 보관함