Write a program which takes a 9-digit number input from user, converts it into its reverse
and then display one of the following statements: (10 marks)
• Original number is x steps bigger (where x is the difference between the two)
• Reversed number is x steps bigger
• Both numbers are equal; hence it is a palindrome.
Enter a 9-digit number : 367548912
Reverse number: 219845763
Original number is 147,703,149 steps bigger
Enter a 9-digit number : 367548
It is not a 9-digit number. Please enter correct number.
Enter a 9-digit number : 259757952
Reverse number: 259757952
Both numbers are equal; hence it is a palindrome
#include <iostream>
#include <string>
using namespace std;
int main()
{
long int number, revnum;
char tmpval;
string revstr = "";
do
{
cout << "Please, enter 9-digits number (0 - exit program): ";
cin >> number;
if (number == 0)break;
string tmpn = to_string(number);
if (tmpn.size() != 9)
cout << "It is not a 9-digit number. Please enter correct number."<<endl;
else
{
int newnumber = number;
for (int i = 0; i < 9; i++)
{
tmpval = '0' + newnumber % 10;
revstr += tmpval;
newnumber = newnumber / 10;
}
revnum = stoi(revstr);
cout << "Reverse number: " << revnum<<endl;
if (number > revnum)
{
cout << "Original number is " << number - revnum << " steps bigger";
}
else if (number < revnum)
{
cout << "Reversed number is " << revnum - number << " steps bigger";
}
else
{
cout << "Both numbers are equal; hence it is a palindrome";
}
cout << endl;
revstr = "";
}
} while (true);
}
Comments
Leave a comment