c语言运行超时怎么解决

问题遇到的现象和发生背景

img

遇到的现象和发生背景,请写出第一个错误信息

运行超时咋办啊

代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include
int main()
{
    int n;
    scanf("%d",&n);
    int i,j,s=0,h=0;
    
    for(i=10000;i<=99999;i++)
    {
        if(i/10000==i%10&&(i/10)%10==(i/1000)%10)
        {
            for(j=1;j<=5;j++)
            {
                s=s+i%10;
                i=i/10;
            }
            if(s==n)
            {
                printf("%d\n",i);
            }
        }
}
    for(i=100000;i<=999999;i++)
    {
        if(i/100000==i%10&&(i/10000)%10==(i/10)%10&&(i/1000)%10==(i/100)%10)
        {
            for(j=1;j<=6;j++)
            {
                h=h+i%10;
                i=i/10;
            }
            if(h==n)
            {
                printf("%d\n",i);
            }
        }
    }
    return 0;

 } 

运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

修改如下,供参考:

#include <stdio.h>
int is(int x,int n)
{
    int t = x, sum = 0, rn = 0;
    while (x)
    {
        sum += x % 10;
        rn = rn * 10 + x % 10;
        x /= 10;
    }
    return sum == n && rn == t;
}
int main(void)
{
    int n = 0, i;
    do
    {
        scanf("%d", &n);
    } while (n < 1 || n > 54);

    for (i = 10000; i <= 999999; i++)
    {
        if (is(i, n))
            printf("%d\n", i);
    }
    return 0;
}

仅供参考!谢谢!

img

img


#include <stdio.h>
#include <string.h>

//求一个十进制数的各个位之和
int intsum(int x)
{
    int sum = 0;
    while (x)
    {
        sum += x % 10;
        x /= 10;
    }
    return sum;
}

//判断回文数
int is(int x)
{
    char s[7];
    sprintf(s, "%d", x);
    char *p2 = &s[strlen(s) - 1];
    char *p1 = s;
    while (p2 > p1)
    {
        if (*p1 != *p2)
            return 0;
        p2--;
        p1++;
    }

    return 1;
}

int main(void)
{
    int n = 0;
    do
    {
        scanf("%d", &n);
    } while (n < 1 || n > 54);

    for (int i = 10000; i <= 999999; i++)
    {
        if (intsum(i) == n && is(i))
        {
            printf("%d\n", i);
        }
    }
    return 0;
}