Reverse a Number in C++

How to Reverse a Number in C++ (6 Programs With Output).

BeginnerAdvanced Number ProgramsExample 4 of 13
reverse-a-number.cpp
1#include <iostream>
2using namespace std;
3
4int main() {
5 int num, reversed = 0, remainder;
6
7 cout << "Enter a number: ";
8 cin >> num;
9
10 int original = num;
11
12 while (num != 0) {
13 remainder = num % 10;
14 reversed = reversed * 10 + remainder;
15 num /= 10;
16 }
17
18 cout << "Reverse of " << original << " is: " << reversed << endl;
19
20 return 0;
21}

Output

Enter a number: 1234
Reverse of 1234 is: 4321

What's going on

This C++ program reverses the digits of an integer. 1234 becomes 4321. 100 becomes 1 — integers don't keep leading zeros.

int num, reversed = 0, remainder;

reversed starts at 0. That's the empty number you're about to build.

cin >> num;

int original = num;

Save it. The loop destroys num. Without original, the cout at the end has nothing honest to print.

while (num != 0)

Peel one digit per pass.

remainder = num % 10;

Last digit. 1234 % 10 is 4.

reversed = reversed * 10 + remainder;

Shift the digits you already have one place left, glue the new one on the right.

num /= 10;

Throw the last digit away. 1234 / 10 is 123.

Walk 1234:

rem 4, reversed 4, num 123
rem 3, reversed 43, num 12
rem 2, reversed 432, num 1
rem 1, reversed 4321, num 0
loop stops

100: rem 0, reversed 0, num 10 → rem 0, reversed 0, num 1 → rem 1, reversed 1. Output 1, not 001.

Negatives: % on a negative dividend is messy. This program is written for positives.

Palindrome check is this reverse, then original == reversed.