A22.0002 - ASSIGNMENT 6
Write a program that produces palindromic numbers: numbers that are
the same forward as backward.
Use the following algorithm:
- Start by taking a number.
- If it isn't a palindrome:
- Reverse the number
- Add it to the original number
- Go back to step 2.
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:
- IsPalindrome: it will test a number and
determine if it is a palindrome. It takes two parameters:
- The number to be tested
- A flag that is set to TRUE if it is a palindrome,
else it is set to FALSE
- ReverseNumber: it will take a given number
and return it's reverse. It takes two parameters:
- The number to be reversed
- The reverse number
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.