c语言输出100到999的回文数

怎么弄搞了半天,我们上面有时间限制,搞了好多次说超出时间限制搞不了贼蠢

#include<stdio.h>
int main()
{
int i,m,k;
for (i=100;i<1000;i++)
{
k=i;
m=0; 
while (k>0)
{
m=m*10+k%10;
k=m/10;
}
if (m==i)
{
printf("%d\n",i);
}
}
return 0;
}

100到999的回文,很简单,只需要检查百位和个位是否相等就可以了啊

#include <stdio.h>
int main()
{
    int num = 0;
    for(int i=100;i<=999;i++)
    {
        if(i%10 == i/100)
        {
            printf("%d ",i);
            num++;
        }
    }
    printf("\n共%d个回文\n",num);
    return 0;
}

不要思维定式,不要总想着从100到999遍历,完全可以考虑自己组装数据啊。三位回文数的形式肯定是aba的形式,所以百位和个位从1到9开始遍历,并保证百位和个位一致,十位数从0到9遍历输出就可以了,代码如下:

img

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    int i, j;
    for (i = 1; i <= 9; i++)
    {
        for (j = 0; j <= 9; j++)
            printf("%d ", i * 100 + j*10 + i);
    }
    return 0;
}