diff options
Diffstat (limited to 'int_rev.c')
-rw-r--r-- | int_rev.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/int_rev.c b/int_rev.c new file mode 100644 index 0000000..cac7bd3 --- /dev/null +++ b/int_rev.c @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> + +int ex_ten(int i) { + return pow(10,i); +} + +int _digit_count(int num) { + for ( int i = 1; ; i++) { + if (num < ex_ten(i) ) + return i; + } +} + +int main() { + int num,rev_num = 0; + printf("Please put a num: "); + scanf("%d",&num); + int digit_count = _digit_count(num) ; + + int former = 0; + + for (int i = 1; i <= digit_count ; i++) { + int temp; + + temp = num % ex_ten(i) - former; + former += temp; + temp /= ex_ten(i-1); + rev_num += temp * (ex_ten(digit_count - i)); + } + printf("%d\n",rev_num); + +} |