#include <stdio.h>
#include <string.h>
//利用栈判断一个字符串是否为回文串
int main(){
char a[101],s[101];
int i,len,mid,next,top;
gets(a);//读入一行字符串
len = strlen(a);//求字符串的长度
mid = len/2 -1;//求字符串的中点,这里用数组模拟栈,数组从0开始存储,所以中间位置mid要-1
top = 0;//栈的初始化
//将mid前的字符依次入栈
for(i = 0;i<=mid;i++){
s[++top] = a[i];
}
//判断字符串的长度是奇数还是偶数,并找出需要进行字符匹配的起始下标next
if(len%2==0){
next = mid+1;
} else {
next = mid+2;
}
//开始逐一匹配
for(i = next;i<=len-1;i++){
if(a[i]!=s[top]){
break;//如果不匹配跳出循环
top--;
}
}
//如果top=0,则说明栈内所有的字符都一一匹配了
if(top==0){
printf("该数是回文数");
} else {
printf("该数不是回文数");
}
getchar();getchar();
return 0;
}