关于回文题目的解法(将数字转换为数组)
回文对称数
https://ac.nowcoder.com/acm/problem/22169
#include <stdio.h>
int main()
{
int a=0,m=0,n=0,i=0,j=0,flag=0,t=0;
int s[100];
scanf ("%d",&a);
for (n=1;n<a;n++)
{
t=n;//存值
s[0]=t%10;//先读出个位
for (m=0;t>0;m++)//这个循环的目的是先读取数字的位数
{
t/=10;//每次除一个10,就加一个位
if (t>0)
{
s[m+1]=t%10;//在读取数位的同时,把数字转换为数组,此时的数组是数字的倒序
}
}
for (i=0,j=m-1;i<j;i++,j--)//这个循环开始对比回文,这属于字符串数组的知识点
{//此处就是把数字转换为数组的方法来写回文
if (s[i]!=s[j])
{
flag=1;//标志量,如果flag=1,那么就说明不是回文
}
}
if (flag==0)
{
printf ("%d\n",n);
}
flag=0;//重置一下标志量
}
return 0;
}