【算法竞赛入门经典】例题3-5 生成元(Digit Generator,ACM/ICPC Seoul 2005,UVa 1583)
程序员文章站
2024-03-18 22:59:16
...
第一行给出需检查的数的个数m,接着m行每行输入一个数,要求输出该数的生成元。
#include<stdio.h>
#include<string.h>
const int maxn=100005;
int s[maxn]={0};
int main(){
for(int i=1;i<maxn;i++){
int x=i;
int sum=i;
while(x){
sum+=x%10;
x/=10;
}
if(s[sum]==0 || i<s[sum])
s[sum]=i;
}
int m;
scanf("%d",&m);
for(int i=0;i<m;i++){
int n;
scanf("%d",&n);
printf("%d\n",sum[n]);
}
return 0;
}