关于回文题目的解法(将数字转换为数组)
回文对称数
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; }