题目链接
题目分析
这道题目如果直接暴力的话会超时,一般遇到这种会涉及重复计算的(大的数的计算过程会包含小的数的计算过程的),优先考虑打表。
源代码
#include<stdio.h>
#include<string.h>
int res[100005];
int main() {
memset(res,0,sizeof(res));
for(int i=1;i<=100000;i++) {
int t=i,sum=i;
while(t!=0) {
sum+=(t%10);
t/=10;
}
if(res[sum]==0||i<res[sum]) res[sum]=i;
}
int t,n;
scanf("%d",&t);
for(int i=0;i<t;i++) {
scanf("%d",&n);
printf("%d\n",res[n]);
}
return 0;
}