Reverse number using for loop
C program to reverse a number using for loop #
This is a C program that will find the reverse of a number provided by user using for loop.
Algorithm #
Ask for the number as user input. In thus case, as we are using for loop, it is essential to know the size of the number beforehand. Therefore we should make use of the log10 function to find the size of the number.
Problem description #
Given a number, find the reverse of the number using for loop.
Methods used #
long reverse(long)
- This function will reverse the number.
Approach #
- Take the number as input.
- Store the number in a variable.
- Find the size of the number using log10() function.
- Inside for loop, take the number and divide it by 10 and store the remainder in a variable.
- Add the remainder to the sum where sum multiplies its previous value by 10.
- Repeat the process until the number is not 0 until the loop ends.
- Return the sum.
Examples #
Input: 98353 Output: 35398
Program/Source code #
/* C program to reverse a number using for loop */
#include <stdio.h>
#include <math.h>
long reverse(long num)
{
long reverse = 0;
long temp;
long remainder;
long size = log10(num);
for (int i = 0; i <= size; i++) {
temp = num;
remainder = temp % 10;
reverse = reverse * 10 + remainder;
num = num / 10;
}
return reverse;
}
int main(void)
{
long num;
printf("Enter the number\n");
scanf("%ld", &num);
printf("The reverse of the number is %ld\n", reverse(num));
return 0;
}
Compiled with gcc 12.1.0 :
gcc num-reverse-for.c -o num-reverse-for -lm
Note that here -lm
is necessary to include math library otherwise the ld
linker will not find the log10()
function.
Explanation #
The program begins with asking the user for a number. The number is stored in a variable num
and then passed to the function reverse()
.
In reverse()
function, we find the log of the number which is the size of the number and then iterate through the for loop from zero to size and use the basic division algorithm to find the reverse of the number.
Time complexity #
The time complexity of the program is O(n).
Space Complexity #
The space complexity of the program is O(1) since we are not using any extra space.
Output #
> ./num-reverse-for
Enter the number
24981
The reverse of the number is 18942
> ./num-reverse-for
Enter the number
172398
The reverse of the number is 893271