1.回文数字:判断一个数字是不是回文数。(回文数的特点是正反序是同一个数字,如:12321,3443)。
2.回文字符串:判断一个字符串是不是回文字符串。(回文字符串特点是原字符串与字符串逆序之后一样,如:"abcba","cddc")。
#include
usingnamespacestd;
intPalindromeNumber(size_tcount)
{
//1.在自然数范围内
//2.情况:0-9,11、99,121,1221,
intflag=0;
inttail=0,head=0;
size_ttmp=count;
//flag=count>=0?0:-1;//定义时是size_t自动截断所以不判断也可若,若定义时使用int则需要判断
intarr[10]={0};//将数字变为数组存储
//chararr[10]={0};//也可将数字变为字符串存储
memset(arr,-1,10*sizeof(int));
while(tmp)
{
arr[tail++]=tmp%10;
tmp/=10;
}
for(head=0;head
{
if(arr[head]!=arr[tail-1])
break;
}
if(head>=tail)
flag=1;
returnflag;
}
intPalindromeString(char*str)//C++的引用
{
//思路:与回文数思路相似
//先遍历一遍字符串找到tail
intflag=0;
inttail=strlen(str);
inthead=0;
for(head=0;head
{
if(str[head]!=str[tail-1])
break;
}
if(head>=tail)
flag=1;
returnflag;
}
voidtest()
{
size_tcount=0;
intflag=0;
count=0;
flag=PalindromeNumber(count);
if(flag==1)
printf("数字%d是回文数字\n",count);
elseif(flag==0)
printf("数字%d不是回文数字\n",count);
else
printf("输入错误\n");
count=11;
flag=PalindromeNumber(count);
if(flag==1)
printf("数字%d是回文数字\n",count);
elseif(flag==0)
printf("数字%d不是回文数字\n",count);
else
printf("输入错误\n");
count=65465;
flag=PalindromeNumber(count);
if(flag==1)
printf("数字%d是回文数字\n",count);
elseif(flag==0)
printf("数字%d不是回文数字\n",count);
else
printf("输入错误\n");
count=12221;
flag=PalindromeNumber(count);
if(flag==1)
printf("数字%d是回文数字\n",count);
elseif(flag==0)
printf("数字%d不是回文数字\n",count);
else
printf("输入错误\n");
count=159951;
flag=PalindromeNumber(count);
if(flag==1)
printf("数字%d是回文数字\n",count);
elseif(flag==0)
printf("数字%d不是回文数字\n",count);
else
printf("输入错误\n");
count=10;
flag=PalindromeNumber(count);
if(flag==1)
printf("数字%d是回文数字\n",count);
elseif(flag==0)
printf("数字%d不是回文数字\n",count);
else
printf("输入错误\n");
count=121521;
flag=PalindromeNumber(count);
if(flag==1)
printf("数字%d是回文数字\n",count);
elseif(flag==0)
printf("数字%d不是回文数字\n",count);
else
printf("输入错误\n");
charstr[100];
while(1)
{
cin>>str;
flag=PalindromeString(str);
if(flag==1)
printf("此字符串是回文字符串\n");
elseif(flag==0)
printf("此字符串不是回文字符串\n");
}
}
intmain()
{
test();
system("pause");
return0;
}