#include <stdio.h>
#include <math.h>
int rev_num(int n);
int main(void)
{
printf("123 : %d\n", rev_num(123));
/*
* (n % 10) * pow(10, (int)log10(n)) + rev_num(n / 10);
* 3 * 10 ^ 2 = 300 + rev_num(12)
* 2 * 10 ^ 1 = 20 + rev_num(1)
* 1 * 10 ^ 0 = 1 + rev_num(0)
* 300 + 20 + 1 = 321;
*/
printf("1234 : %d\n", rev_num(1234));
/*
* (n % 10) * pow(10, (int)log10(n)) + rev_num(n / 10);
* 4 * 10 ^ 3 = 4000 + rev_num(123)
* 3 * 10 ^ 2 = 300 + rev_num(12)
* 2 * 10 ^ 1 = 20 + rev_num(1)
* 1 * 10 ^ 0 = 1 + rev_num(0)
* 4000 + 300 + 20 + 1 = 4321;
*/
printf("1221 : %d\n", rev_num(1221));
return 0;
}
int rev_num(int n)
{
return n < 10 ? n : (n % 10) * pow(10, (int)log10(n)) + rev_num(n / 10);
}
/*
run:
123 : 321
1234 : 4321
1221 : 1221
*/