File tree Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Expand file tree Collapse file tree 2 files changed +48
-0
lines changed Original file line number Diff line number Diff line change 11env = Environment (CCFLAGS = '-g' )
22
33env .Program ('palin_str.cpp' )
4+
5+ env .Program ('palin_num.cpp' )
Original file line number Diff line number Diff line change 1+ #include < stdio.h>
2+ #include < stdlib.h>
3+
4+ unsigned int reverse (unsigned int num)
5+ {
6+ unsigned int rev = 0 ;
7+
8+ while (num)
9+ {
10+ rev = rev * 10 + num % 10 ;
11+ num /= 10 ;
12+ }
13+
14+ return rev;
15+ }
16+
17+ bool isPalindrome (int x)
18+ {
19+ if (x < 0 ) return false ;
20+ int div = 1 ;
21+ while (x / div >= 10 ) {
22+ div *= 10 ;
23+ }
24+ while (x != 0 ) {
25+ int l = x / div;
26+ int r = x % 10 ;
27+ if (l != r) return false ;
28+ // remove l and r
29+ // l -------------- r
30+ x = (x % div) / 10 ;
31+ // remove l and r 2 digits
32+ div /= 100 ;
33+ }
34+ return true ;
35+ }
36+
37+ int main (int argc, char * argv[])
38+ {
39+ unsigned int num = 616 ;
40+
41+ printf (" %d\n " , argv[1 ] ? reverse (atoi (argv[1 ])) : reverse (num));
42+
43+ printf (" %d\n " , argv[1 ] ? isPalindrome (atoi (argv[1 ])) : isPalindrome (num));
44+
45+ return 0 ;
46+ }
You can’t perform that action at this time.
0 commit comments