Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

// reverse.cpp // Reverse the digits of a number. #include <iostream> #include <

ID: 3627066 • Letter: #

Question

// reverse.cpp
// Reverse the digits of a number.
#include <iostream>
#include <iomanip>
using namespace std;

/* Write prototype for reverseDigits */

int main()
{
int number; // input number

cout << "Enter a number between 1 and 9999: ";
cin >> number;

cout << "The number with its digits reversed is: ";

// find number with digits reversed
cout << /* Write call to reverseDigits */ << endl;
} // end main

// reverseDigits returns number obtained by reversing digits of n
/* Write function header for reverseDigits */
{
int reverse = 0; // reversed number
int divisor = 1000; // current divisor
int multiplier = 1; // current multiplier

// loop until single-digit number
while ( n > 9 )
{
// if n >= current divisor, determine digit
if ( n >= divisor )
{
// update reversed number with current digit
reverse += n / divisor * multiplier;
n %= divisor; // update n
/* Write a line of code that reduces divisor by a factor of 10 */
/* Write a line of code that increases multiplier by a factor of 10 */
} // end if
else // else, no digit
divisor /= 10; // update divisor
} // end while

reverse += n * multiplier;
return reverse; // return reversed number
} // end function reverseDigits

Sample output:

Enter a number between 1 and 9999: 7631

The number with its digits reversed is: 1367

Explanation / Answer

#include <iostream>
#include <iomanip>
using namespace std;
int reverse(int);
int main()
{
int number; // input number
cout << "Enter a number between 1 and 9999: ";
cin >> number;
cout << "The number with its digits reversed is: ";
cout << reverse(number) << endl;
} // end main

int reverse(int n)
{
int reverse = 0; // reversed number
int divisor = 1000; // current divisor
int multiplier = 1; // current multiplier
while ( n > 9 )
{
if ( n >= divisor )
{
reverse += n / divisor * multiplier;
n %= divisor; // update n
divisor = divisor/10;
multiplier =multiplier*10;
} // end if
else // else, no digit
divisor /= 10; // update divisor
} // end while

reverse += n * multiplier;
return reverse; // return reversed number
}