这道题看完题很容易出思路,再想想优化循环,不必从头到尾没个数循环判断,因为最大为10 0000,所以N的generator最小也就比N小5*9=45,所以只需循环判断从N~N-45就行了。保险起见多循环了9个数。
AC代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t;
int b,n,m,su,i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
m=0;
for (i=n-1;i>=n-54;i--)
{
su=0;
b=i;
while(b)
{
su+=b%10;
b/=10;
}
if (i+su==n)
m=i;
}
printf("%d\n",m);
}
return 0;
}