这一题看起来挺麻烦,其实就是一道打表题,先把所有的情况都枚举出来,再进行搜索输出即可
#include<stdio.h>
#include<string.h>
#define maxn 100000+5
int ans[maxn];
int main()
{
// 打表
int T, n;
// 不要忘记初始化数组
memset(ans, 0, sizeof(ans));
for(int m = 1; m < maxn; m++)
{
int x = m, y = m;
while(x > 0)
{
y += x % 10;
x /= 10;
}
if(ans[y] == 0 || m < ans[y]) ans[y] = m;
}
// 可以开心的输出了
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
printf("%d\n", ans[n]);
}
return 0;
}