E D R , A S I H C RSS

Reverse And Add

원문보기
----
인기도:A(A,B,C), 성공률:낮음(낮음,보통,높음), 레벨:1(1~4)

About ReverseAndAdd

일단 어떤 수를 받아서 그 수를 뒤집은 다음 뒤집어진 수를 원래의 수에 더하는 과정을 뒤집어서 더하기라고 부르자. 그 합이 회문(palindrome, 앞뒤 어느 쪽에서 읽어도 같은 말이 되는 어구. 예:eye, madam, 소주만병만주소)이 아니면 회문이 될 때까지 이 과정을 반복한다.

예를 들어 처음에 195에서 시작해서 다음과 같이 네 번 뒤집어서 더하기를 반복하면 9339라는 회문이 만들어진다.
~cpp 
 195      786       1473      5214
+591     +687      +3741     +4125
----     -----     -----     -----
 786     1473       5214      9339

대부분의 정수는 이 방법을 몇 단계만 반복하면 회문이 된다. 하지만 예외도 있다. 회문을 찾을 수 없는 것으로 밝혀진 첫번째 수는 196이다. 하지만 회문이 없다는 것이 증명된 적은 없다.

어떤 수가 주어졌을 때 회문이 있으면 출력하고, 그 회문을 찾기까지 뒤집어서 더하기를 반복한 횟수를 출력하는 프로그램을 만들어야 한다.

테스트 데이터로 쓴이는 수는 모두 뒤집어서 더하기를 1,000번 미만 반복해서 회문을 찾을 수 있는 수고, 그렇게 만들어진 회문을 4,294,967,295보다 크지 않다고 가정해도 된다.

Input

첫번째 줄에는 테스트 케이스를 나타내는 정수 N(0

output

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

Sample Input

~cpp 
3
195
265
750

Sample Output

~cpp 
4 9339
5 45254
3 6666

풀이

작성자 사용언어 개발시간 코드
남상협 Python 60분 ReverseAndAdd/남상협
신재동 Python 30분 ReverseAndAdd/신재동
황재선 Python 50분 ReverseAndAdd/황재선
김회영 C ? ReverseAndAdd/김회영
문보창 C++/Python 90분/20분 ReverseAndAdd/문보창
곽세환 C++ ? ReverseAndAdd/곽세환
이승한 C++ 1시간 40분 ReverseAndAdd/이승한
김민경 Python . ReverseAndAdd/민경
김태훈 Python . ReverseAndAdd/태훈
김정현 Python . ReverseAndAdd/김정현
정수민 Python . ReverseAndAdd/정수민
남도연 Python . ReverseAndAdd/남도연
최경현 Python . ReverseAndAdd/최경현
김범준 Python . ReverseAndAdd/김범준
임인택 HaskellLanguage 5분 ReverseAndAdd/임인택
JuNe J 10분 (<:@# , {:)@((+ |.)&.(10&#.^:_1)^:(-.@((-: |.)@(10&#.^:_1)))^:a:)
허아영 C++ 2시간 ReverseAndAdd/허아영
1002 Python 5분 ReverseAndAdd/1002

쓰레드

  • 처음 주어진 수가 회문이면 ReverseAndAdd연산을 하는건가요 안하는건가요? --iruril
    • 안하지 않을까요? --회영
      • 안 하죠. 입력이 ~cpp 191이면 출력은 ~cpp 0 191 -- 재선
  • 개인적인 사정도 있었고, 스러피에서 슬럼프에 빠졌었습니다. 다시 열심히 할께요~ - 이승한
  • 정수 N(0
----
문제분류

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.1035 sec