题目:回文数是正着读与倒着读都一样的数,比如1221,343是回文数,433不是回文数。请输出不超过n的回文数。
输入一个数n (1<=n<=100000)
思路:不同层次的数有不同的规律,按照规律编写代码即可
#include<stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
if (i < 10)//ok
{
printf("%d\n", i);
}
else if (i >= 10 && i < 100)//ok
{
if (!(i % 11))
{
printf("%d\n", i);
}
}
else if (i >= 100 && i < 1000)
{
if ((i % 10) == (i / 100))
{
printf("%d\n", i);
}
}
else if (i >= 1000 && i < 10000)
{
if (((i % 10) == (i / 1000)) && (((i % 100 - i % 10)) / 10 == (i / 100 % 10)))
{
printf("%d\n", i);
}
}
else if (i >= 10000 && i < 100000)
{
if (((i % 10) == (i / 10000)) && (((i % 100 - i % 10)) / 10 == (i / 1000 % 10)))
{
printf("%d\n", i);
}
}
}
return 0;
}