Reverse a Number


(Coding Clutch Challenge Series 101) – Coding Challenge #5

Reversing a number might seem simple, but it’s a fundamental problem that helps programmers learn about loops, conditionals, and string manipulation. It also teaches how to handle edge cases, like negative numbers or leading zeros.

In this article, we’ll dive deep into solving the “Reverse a Number” challenge, explore different approaches, and provide code examples in Python, Java, C, and C++.

Coding Clutch Challenge Series 101 – All Coding Challenges


Understanding the Challenge

The goal is to reverse the digits of a given number. If the number is negative, the reversed number should retain the negative sign. Leading zeros in the reversed number are removed.

Examples:

  1. Input: 12345 → Output: 54321
  2. Input: -9876 → Output: -6789
  3. Input: 1000 → Output: 1

This challenge is a great way to practice handling numbers and strings in different programming languages.

Coding Clutch Challenge Series 101 – All Coding Challenges


Approaches to Solve the Challenge

1. String-Based Reversal

This is the simplest approach. Convert the number to a string, reverse the string, and convert it back to a number.

Python Example:

def reverse_number(n):
    sign = -1 if n < 0 else 1
    n = abs(n)
    reversed_num = int(str(n)[::-1])
    return sign * reversed_num

print(reverse_number(12345))  # Output: 54321
print(reverse_number(-9876))  # Output: -6789

Coding Clutch Challenge Series 101 – All Coding Challenges

Java Example:

public class ReverseNumber {
    public static int reverseNumber(int n) {
        int sign = n < 0 ? -1 : 1;
        n = Math.abs(n);
        String reversed = new StringBuilder(String.valueOf(n)).reverse().toString();
        return sign * Integer.parseInt(reversed);
    }

    public static void main(String[] args) {
        System.out.println(reverseNumber(12345));  // Output: 54321
        System.out.println(reverseNumber(-9876));  // Output: -6789
    }
}

Coding Clutch Challenge Series 101 – All Coding Challenges

C Example:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int reverseNumber(int n) {
    int sign = n < 0 ? -1 : 1;
    n = abs(n);
    char str[20];
    sprintf(str, "%d", n);
    strrev(str); // Reverse the string
    return sign * atoi(str);
}

int main() {
    printf("%d\n", reverseNumber(12345));  // Output: 54321
    printf("%d\n", reverseNumber(-9876));  // Output: -6789
    return 0;
}

Coding Clutch Challenge Series 101 – All Coding Challenges

C++ Example:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int reverseNumber(int n) {
    int sign = n < 0 ? -1 : 1;
    n = abs(n);
    string str = to_string(n);
    reverse(str.begin(), str.end());
    return sign * stoi(str);
}

int main() {
    cout << reverseNumber(12345) << endl;  // Output: 54321
    cout << reverseNumber(-9876) << endl;  // Output: -6789
    return 0;
}

Coding Clutch Challenge Series 101 – All Coding Challenges


2. Mathematical Approach

This approach uses arithmetic operations to reverse the digits.

Python Example:

def reverse_number(n):
    sign = -1 if n < 0 else 1
    n = abs(n)
    reversed_num = 0
    while n != 0:
        reversed_num = reversed_num * 10 + n % 10
        n //= 10
    return sign * reversed_num

print(reverse_number(12345))  # Output: 54321
print(reverse_number(-9876))  # Output: -6789

Coding Clutch Challenge Series 101 – All Coding Challenges


Key Edge Cases to Handle

  • Negative numbers: Ensure the negative sign is retained.
  • Leading zeros: Drop them in the reversed number.
  • Single-digit numbers: These should remain unchanged.

Applications and Use Cases

  • Data Processing: Used to manipulate numerical data.
  • Cryptography: Basic number transformations.
  • Algorithms: Teaches fundamental coding techniques.

Coding Clutch Challenge Series 101 – All Coding Challenges


Reversing a number is a straightforward but essential coding challenge. From string manipulation to mathematical approaches, there are multiple ways to solve this problem, each with its pros and cons. Keep practicing to sharpen your coding skills!


FAQs

  1. What is the best way to reverse a number in Python?
    Use string slicing ([::-1]) for simplicity or arithmetic for efficiency.
  2. Can this problem be solved without converting the number to a string?
    Yes, the mathematical approach avoids string conversion entirely.
  3. What happens if the input number has leading zeros?
    Leading zeros are removed in the reversed number.
  4. Are there any limitations to these methods?
    Be cautious of integer overflow in languages like C and Java.
  5. Is this challenge beginner-friendly?
    Absolutely! It’s a great way to practice basic coding skills.

Coding Clutch Challenge Series 101 – All Coding Challenges