回文数是一种特殊的数,从左边读和从右边读是一样的,比如123321就是一个回文数。现在给定一个正整数n(n≤54),编程求出一个回文数,要求该回文数的各位数字之和等于n,且该回文数大于10000,小于等于99999。如果有多个满足条件的回文数,输出最小的这个;如果没有满足条件的回文数,输出"Not found"。
例如,给定n=16,满足条件的最小回文数是13831。
再比如给定n=10,满足条件的最小回文数是10801。
回文数是一种特殊的数,从左边读和从右边读是一样的,比如123321就是一个回文数。现在给定一个正整数n(n≤54),编程求出一个回文数,要求该回文数的各位数字之和等于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;
}
}
}
}