题目描述
回文数是一种特殊的数,从左边读和从右边读是一样的,比如123321就是一个回文数。现在给定一个正整数n(n≤54),编程求出一个回文数,要求该回文数的各位数字之和等于n,且该回文数大于10000,小于等于99999。如果有多个满足条件的回文数,输出最小的这个;如果没有满足条件的回文数,输出"Not found"。
输入输出格式
输入格式
一个正整数n
输出格式
按要求找到的回文数,如果没找到,输出"Not found"
完整代码
#include <stdio.h>
#include <math.h>
#include <string.h>
int huiwen(int n) //判断回文数
{
int t=n;
int sum=0;
while(t)
{
sum=sum*10+t%10;
t=t/10;
}
if(sum==n)
{
return 1;
}else{
return 0;
}
}
int sum(int n) //各位数字求和
{
int t=n;
int end=0;
while(t)
{
end+=t%10;
t/=10;
}
return end;
}
int main()
{
int n;
scanf("%d",&n);
int flag=0;
if(n>0&&n<=54)
{
int i=0;
for(i=10000;i<=99999;i++)
{
if((huiwen(i)==1)&&(sum(i)==n))
{
printf("%d",i);
flag=1;
break;
}
}
}
if(flag==0)
{
printf("Not found");
}
return 0;
}