Description
Determine whether an integer is a palindrome. Do this without extra space.
Samples: 1234321 1221都是回文数,负数不属于回文数。中心对称的数是回文数
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
#define N 11
/*
* #define MAX_INT ((unsigned)(-1) >> 1)
*#define MIN_INT (MAX_INT + 1)
*/
bool isPalindrome(int x) {
int MAX_INT = (unsigned)(-1) >> 1;
//int MIN_INT = MAX_INT + 1;
char string[N];
int length;
int i=0;
if(x > MAX_INT || x < 0)
return 0;
sprintf(string, "%d", x);
length = strlen(string);
if(length == 1)
return 1;
while(i < length/2)
{
if(string[i] == string[length - i - 1]) i++;
else break;
}
if(i == length/2)
return 1;
return 0;
}
int main(void)
{
int x;
scanf("%d",&x);
bool bl=isPalindrome(x);
if(bl) printf("%d is Palindrome\n",x);
else printf("%d is not Palindrome\n",x);
return 0;
}