关于回文题目的解法(将数字转换为数组)

回文对称数

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;
  } 
全部评论
点赞 回复 分享
发布于 2022-07-06 20:30

相关推荐

不愿透露姓名的神秘牛友
昨天 12:19
点赞 评论 收藏
分享
shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
8
1
分享
牛客网
牛客企业服务