/*
number pow( number $base , number $exp )
float log10( float $arg )
*/
function rev_num($n)
{
return $n < 10 ? $n : ($n % 10) * pow(10, (int)log10($n)) + rev_num($n / 10);
}
printf("123 : %d<br />", 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<br />", 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<br />", rev_num(1221));
/*
run:
123 : 321
1234 : 4321
1221 : 1221
*/