본문 바로가기

Language/algorithm

[알고리즘] Palindrome

<문제설명>
Palindrome(이하 회문)은 앞/뒤 어느쪽으로 읽어도 같은 말이 되는 어구를 의미한다.
예) 191, 4325234, 123321, eye
어떤 수를 받아서 그 수를 뒤집은(reverse) 다음 원래의 수에 더하여 나온 값이 회문이 될 때까지,
뒤집은 수 더하기를 반복하여 회문을 찾는 프로그램을 작성하라.


<예>
입력값 195인 경우,
1) 195 + 591 = 786
2) 786 + 687 = 1473
3) 1473 + 3741 = 5214
4) 5214 + 4125 = 9339
출력 : 195 4 9339


<주의사항>
• 회문을 찾을 수 없는 수도 있다.
  예) 아직 증명되지는 않았지만 196은 회문을 찾을 수 없는 수 이다.
• 뒤집어 더하는 것을 100번 해도 회문을 찾을 수 없는 경우는 회문이 없다고 가정한다.


<입/출력>
• 입력 : 프로그램의 첫번째 인자로 숫자를 받는다.
  예) 입력값에 오류는 없다고 가정한다. 즉, 오류처리를 할 필요가 없다.( 무조건 10진수, 32bit 값을 입력 받는 것으로 간주함 )
• 출력 : 입력받은 숫자와 회문을 발견하기 위해 뒤집어 더한 횟수, 그리고 구해진 회문
  예) 195 4 9339
  예) 196 is not palindrome