Reverse a Number in C++
How to Reverse a Number in C++ (6 Programs With Output).
1#include <iostream>2using namespace std;34int main() {5 int num, reversed = 0, remainder;67 cout << "Enter a number: ";8 cin >> num;910 int original = num;1112 while (num != 0) {13 remainder = num % 10;14 reversed = reversed * 10 + remainder;15 num /= 10;16 }1718 cout << "Reverse of " << original << " is: " << reversed << endl;1920 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:
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.