这个问题思路是啥呀?

回文数是一种特殊的数,从左边读和从右边读是一样的,比如123321就是一个回文数。现在给定一个正整数nn54),编程求出一个回文数,要求该回文数的各位数字之和等于n,且该回文数大于10000,小于等于99999。如果有多个满足条件的回文数,输出最小的这个;如果没有满足条件的回文数,输出"Not found"

例如,给定n=16,满足条件的最小回文数是13831。
再比如给定n=10,满足条件的最小回文数是10801。

先判断是否是回文数,因为位数不变所以不用写循环,之后把每一位相加最后判断就好

#include<stdio.h>
int main(){
    int num1,sum;
    scanf("%d",&num1);
    for(int i=10000;i<=99999;i++){
        if(i%10==i/10000&&i/10%10==i/1000%10){
            int t=i;
            sum=0;
            while(t>0){
                sum += t%10;
                t /= 10;
            }
            if(sum == num1){
                printf("%d",i);
                break;
            }
        }
    }
}