Reverse a Number

Program to reverse digits of a number

JavaScriptBeginner
JavaScript
// Method 1: Using while loop
function reverseNumber(num) {
    let reversed = 0;
    let original = num;
    
    while (num > 0) {
        let digit = num % 10;
        reversed = reversed * 10 + digit;
        num = Math.floor(num / 10);
    }
    
    return reversed;
}

console.log("Reverse of 1234:", reverseNumber(1234));
console.log("Reverse of 5678:", reverseNumber(5678));

// Method 2: Using string conversion
function reverseNumberString(num) {
    return parseInt(num.toString().split('').reverse().join(''));
}

console.log("\nUsing string method:");
console.log("Reverse of 1234:", reverseNumberString(1234));
console.log("Reverse of 9876:", reverseNumberString(9876));

// Method 3: Using array methods
function reverseNumberArray(num) {
    return parseInt(
        num.toString()
           .split('')
           .reverse()
           .join('')
    );
}

console.log("\nUsing array methods:");
console.log("Reverse of 5432:", reverseNumberArray(5432));

// Method 4: Handling negative numbers
function reverseNumberComplete(num) {
    let isNegative = num < 0;
    num = Math.abs(num);
    
    let reversed = 0;
    while (num > 0) {
        reversed = reversed * 10 + (num % 10);
        num = Math.floor(num / 10);
    }
    
    return isNegative ? -reversed : reversed;
}

console.log("\nWith negative support:");
console.log("Reverse of -1234:", reverseNumberComplete(-1234));
console.log("Reverse of 5678:", reverseNumberComplete(5678));

Output

Reverse of 1234: 4321
Reverse of 5678: 8765

Using string method:
Reverse of 1234: 4321
Reverse of 9876: 6789

Using array methods:
Reverse of 5432: 2345

With negative support:
Reverse of -1234: -4321
Reverse of 5678: 8765

This program demonstrates different methods to reverse a number.

Method 1: Mathematical Approach

Using modulo and division:

javascript
while (num > 0) {
    let digit = num % 10;        // Get last digit
    reversed = reversed * 10 + digit;  // Add to reversed
    num = Math.floor(num / 10);   // Remove last digit
}

How it works:

  1. Extract last digit: num % 10
  2. Add to reversed: reversed * 10 + digit
  3. Remove last digit: Math.floor(num / 10)

Example: 1234

  • Iteration 1: digit=4, reversed=4, num=123
  • Iteration 2: digit=3, reversed=43, num=12
  • Iteration 3: digit=2, reversed=432, num=1
  • Iteration 4: digit=1, reversed=4321, num=0

Method 2: String Conversion

Convert to string, reverse, convert back:

javascript
num.toString().split('').reverse().join('')

String Methods:

  • toString(): Number to string
  • split(''): String to array
  • reverse(): Reverse array
  • join(''): Array to string
  • parseInt(): String to number

Method 3: Array Methods

Same as Method 2, more explicit:

javascript
num.toString()
   .split('')
   .reverse()
   .join('')

Method 4: Negative Number Support

Handle negative numbers:

javascript
let isNegative = num < 0;
num = Math.abs(num);  // Make positive
// ... reverse logic ...
return isNegative ? -reversed : reversed;

Math Methods:

  • Math.abs(): Absolute value
  • Math.floor(): Round down

When to Use:

  • Mathematical: Learning, efficient

  • String: Simple, readable

  • Array: Functional style