summaryrefslogtreecommitdiff
path: root/int_rev.c
blob: cac7bd3525af325fd1b55d9b0e7df88a518f86f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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);

}