因为题目给出的n的最大值是100000,即为它的各个位数加起来的和的最大值是1+9+9+9+9+9=46,
所以对于任意一个数n,就可以从n-46开始枚举就可以了,检测它是否满足条件。
#include<stdio.h>
int main()
{
long int n,i,s=0,num;
scanf("%d",&num);
while(num--)
{
scanf("%d",&n);
{
int flag=0;
for(i=n-46;i<=n;i++)
{
s=i%10+i/10%10+i/100%10+i/1000%10+i/10000%10;
if(s+i==n)
{
flag=1;
break;
}
}
if(flag)
printf("%ld\n",i);
else
printf("0\n");
}
}
}