范围还好,但是是多数据,穷举肯定要挂。于是准备生成表(c)。先把c全部赋值成0,再生成。若c那么就输出a[n]。(输出0表示无解)。
查表即可。
#include <stdio.h>
#include <string.h>
int c[100090];
int main()
{
int n,i,x,t,y;
memset(c,0,sizeof(c));
for(i=1;i<=100000;i++)
{
x=i;
y=i;
while(x>0)//分离各个数位
{
y += x % 10;
x /= 10;
}
if ((c[y]==0) || (c[y]<x))//如果得到的值小或原来是0就存在c
{
c[y]=i;
}
}
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&t);
printf("%d\n",c[t]);//输出表
}
return 0;
}