#include "stdio.h"
int isHW(int n)
{
int i,count = 0,u = 1,m = 10;
if(n < 10)
return 1;
for(i = 0; i <= count; i ++) //判断整数的位数count
{
if(n/u == 0)
continue;
count ++;
u *= 10;
}
for(i = 0; i < count/2; i ++) //判断是否是回文
{
u /= 10; //u经过之前循环是10^(位数+1),需要/10,方便取n的最高位
if(n/u != n%m) //如果最高位和最低位不等
return 0; //直接返回0
n -= n/u *u; //将n去掉最高位
n /= 10; //将n去掉最低位
u /= 10; //因为去掉了最低位,下一次获取最高位时应该多/10
}
return 1;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1; i<=n;i++)
isHW(i) ? printf("%d\n",i) : i;
}
int isHW(int n)
{
int i,count = 0,u = 1,m = 10;
if(n < 10)
return 1;
for(i = 0; i <= count; i ++) //判断整数的位数count
{
if(n/u == 0)
continue;
count ++;
u *= 10;
}
for(i = 0; i < count/2; i ++) //判断是否是回文
{
u /= 10; //u经过之前循环是10^(位数+1),需要/10,方便取n的最高位
if(n/u != n%m) //如果最高位和最低位不等
return 0; //直接返回0
n -= n/u *u; //将n去掉最高位
n /= 10; //将n去掉最低位
u /= 10; //因为去掉了最低位,下一次获取最高位时应该多/10
}
return 1;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1; i<=n;i++)
isHW(i) ? printf("%d\n",i) : i;
}

京公网安备 11010502036488号