Reverse a Number using Loops in C
To reverse a number in C using loops, we repeatedly extract the last digit using the modulus operator (%), add it to the reversed number, and remove the last digit using division (/). This process continues until all digits are processed. Below, we will explore different ways to reverse a number using loops.
Examples to Reverse a Number
1. Reverse a Number Using a while Loop
In this example, we will take an integer as input and reverse it using a while loop. The last digit is extracted and added to the reversed number iteratively.
main.c
#include <stdio.h>
int main() {
int num, reversed = 0, remainder;
// Input from user
printf("Enter a number: ");
scanf("%d", &num);
// Reverse the number using while loop
while (num != 0) {
remainder = num % 10; // Extract last digit
reversed = reversed * 10 + remainder; // Build reversed number
num /= 10; // Remove last digit
}
printf("Reversed Number: %d\n", reversed);
return 0;
}
Explanation:
num: Stores the original number input by the user.reversed: Stores the reversed number, initially set to0.remainder: Extracts the last digit usingnum % 10.- Each extracted digit is added to
reversedafter multiplying it by10. num /= 10removes the last digit after processing it.- The loop continues until all digits are processed.
Output:
Enter a number: 1234
Reversed Number: 4321
2. Reverse a Number Using a for Loop
We can achieve the same result using a for loop. The loop iterates as long as the number is not zero, extracting and reversing digits one by one.
main.c
#include <stdio.h>
int main() {
int num, reversed = 0, remainder;
// Input from user
printf("Enter a number: ");
scanf("%d", &num);
// Reverse the number using for loop
for (; num != 0; num /= 10) {
remainder = num % 10;
reversed = reversed * 10 + remainder;
}
printf("Reversed Number: %d\n", reversed);
return 0;
}
Explanation:
- Similar to the
whileloop example, we declarenum,reversed, andremainder. - The
forloop does not require an explicit initialization sincenumis already set. - Each iteration extracts the last digit and appends it to
reversed. - The number is reduced by dividing it by
10in the loop condition.
Output:
Enter a number: 9876
Reversed Number: 6789
3. Reverse a Number Using Recursion
Instead of using loops, we can also use recursion to reverse a number. This approach involves calling a function repeatedly to extract digits and construct the reversed number.
main.c
#include <stdio.h>
int reverseNumber(int num, int reversed) {
if (num == 0)
return reversed;
return reverseNumber(num / 10, reversed * 10 + num % 10);
}
int main() {
int num;
// Input from user
printf("Enter a number: ");
scanf("%d", &num);
// Call the recursive function
printf("Reversed Number: %d\n", reverseNumber(num, 0));
return 0;
}
Explanation:
- The function
reverseNumber()takes two parameters: the number and the reversed number. - The base case is when
numbecomes 0, returning the reversed number. - Otherwise, we extract the last digit and append it to
reversedusingreversed * 10 + num % 10. - The function is called recursively with
num / 10until all digits are processed.
Output:
Enter a number: 456
Reversed Number: 654
Conclusion
In this tutorial, we learned different ways to reverse a number in C:
whileLoop: Extracts and appends digits iteratively.forLoop: Achieves the same result with a compact loop structure.- Recursion: Calls a function repeatedly to reverse digits.
