今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回数是正着读与倒着读都一样的数,比如1221, 343是回文数,433不是回文数。请输出不超过n的回文数。 输入描述: 输入一个整数n(1<=n <=100000) 输出描述: 从1开始按从小到大的顺序输出所有回文数。用c语言表示
时间: 2023-05-27 15:06:59 浏览: 115
#include<stdio.h>
int main()
{
int n,i,j,k,m,a[100],num=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i<10) printf("%d ",i); //一位数都是回文数
else if(i<100) //两位数判断是否为回文数
{
if(i%11==0) printf("%d ",i); //11的倍数为回文数
}
else //三位数及以上
{
m=i;
while(m>0) //将数字拆成位数存储在数组中
{
a[num]=m%10;
m/=10;
num++;
}
k=1;
for(j=0;j<num/2;j++) //判断是否为回文数
{
if(a[j]!=a[num-1-j])
{
k=0;
break;
}
}
if(k==1) printf("%d ",i); //是回文数,输出
num=0; //清零数组和计数器
for(j=0;j<100;j++)
{
a[j]=0;
}
}
}
return 0;
}
阅读全文