枚举1~100000把所有数的最小generators记录下来,直接查表即可。
AC代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=100000+50;
int ans[maxn];
int get(int a){
int b=a;
while(b>0){
a+=b%10;
b/=10;
}
return a;
}
void solve(){
memset(ans,0,sizeof(ans));
for(int i=0;i<=100000;++i){
int p=get(i);
if(ans[p]==0) ans[p]=i;
}
}
int main(){
solve();
int T,n;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
printf("%d\n",ans[n]);
}
return 0;
}
如有不当之处欢迎指出!