Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- reverse_integer.c
- https://www.programmingsimplified.com/c/source-code/c-program-reverse-number
- https://www.geeksforgeeks.org/write-a-program-to-reverse-digits-of-a-number/
- You can find all my C programs at Dragan Milicev's pastebin:
- https://pastebin.com/u/dmilicev
- */
- #include <stdio.h>
- int reverse_v1(int num)
- {
- int rev_num = 0;
- while(num > 0)
- {
- rev_num = rev_num*10 + num%10;
- num = num/10;
- }
- return rev_num;
- }
- int reverse_by_recursion_v1(int num, int rev)
- {
- if(num==0)
- return rev;
- else
- return reverse_by_recursion_v1(num/10, rev*10 + num%10);
- }
- long reverse_by_recursion_v2(long n) {
- static long r = 0;
- if (n == 0)
- return 0;
- r = r * 10;
- r = r + n % 10;
- reverse_by_recursion_v2(n/10);
- return r;
- }
- int main(void)
- {
- int number, reversed_number;
- printf("\n Enter integer: ");
- scanf("%d", &number);
- reversed_number = reverse_v1(number);
- printf("\n\n\t reverse_v1(number) \n");
- printf("\n Reverse of %d is %d \n", number, reversed_number);
- // reverse by recursion v1
- // Second argument must be 0 while calling function
- printf("\n\n\t reverse_by_recursion(number, 0) \n");
- reversed_number = reverse_by_recursion_v1(number, 0);
- printf("\n Reverse of %d is %d \n", number, reversed_number);
- // reverse by recursion v2
- printf("\n\n\t reverse_by_recursion_v2(number) \n");
- reversed_number = reverse_by_recursion_v2(number);
- printf("\n Reverse of %d is %d \n\n", number, reversed_number);
- return 0;
- } // main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement