如:输入整数 X = 1 2 0 0 0 1;
将其转换为字符串:S = “ 1 2 0 0 0 1 ”;
再比较此字符串是否为回文串;
#include<stdio.h>
void isPalindrome(int x){
int p,i=0,j=0,k,flag=1;
int a[10];//字符串数组
if(x<0)//若数<0,如-121,其反过来321-,则不是回文数,返回false
printf("false\n");
//若数>0,按如下操作继续执行
else
{
while(x>0)//x=0时,跳出循环
{
a[i]=x%10;//将余数放置数组中
x=x/10;//将x的商赋给x
i++;
}
k=i;//k存储数组a的个数
while(j<k/2&&flag)//flag=0标志其不是回文串,则终止循环,flag=1,继续循环
{
if(a[j]==a[k-j-1])//若队首==队尾
j++;//则继续遍历队首后一位数?=队尾前一位数
else
flag=0;//若!=,则终止
}
if(j<k/2)//若终止循环后,j<k/2,则返回false
printf("false\n");
else
printf("true\n");//否则,返回ture
}
}
int main()
{
int x;
while(1)
{
printf("输入整数:\n");
scanf("%d",&x);
printf("是否是回文数?:\n");
isPalindrome(x);
}
return 0;
}