A22.0002 - ASSIGNMENT 6


Write a program that produces palindromic numbers: numbers that are the same forward as backward.

Use the following algorithm:

  1. Start by taking a number.
  2. If it isn't a palindrome:
Example: the number 101 is a palindrome. The number 561, however, isn't. We take the reverse and add it to the previous: 165+561 = 726. This is still not a palindrome, so we repeat the step: 627+726=1,353. This is still not a solution and we repeat the procedure once more: 3,531+1,353=4,884. This is a palindrome, so we stop. It has taken us three steps to produce the palindrome.

The program should display the final palindrome and how many steps it took to produce it.

Specs : (i.e., what your procedure should and should not do)
You will have to implement the following helper functions:


Example runs:

   Please enter number to start with: 123
   Palindrome: 444 
   Number of reversals: 1

   Please enter number to start with: 169
   Palindrome: 1441
   Number of reversals: 2


Notes :

Be careful: the number could easily become too large. If you start with the number 89, you will have to make 24 reversals and you will end up with the number 8,813,200,023,188 ! You can buy yourself a few more steps by using longints, but it still is not enough. You have to make sure that the number those not exceed the limit.