书页数P52
#define maxn 100005
int ans[maxn];
int main() {
int T, n;
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 ", ans[n]);
}
return 0;
}
这里着重记忆如何表现“x加x的各个数字之和得到y”,运用了一个while循环。当x被除的结果为0的时候跳出循环。