生成元(uva 1583)

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <set>
#include <map>

using namespace std;

const int maxn = 100005;

int a[100005];
void init(){
    memset(a,0,sizeof(a));
    for(int m=1;m<=maxn;m++){
        int x=m,y=m;
        while(x){
            y+=x%10;
            x/=10;
        }
        if(a[y]==0||m<a[y])a[y]=m;
    }
}

int main(){
    init();
    int t,n;
    cin>>t;
    while(t--){
        cin>>n;
        cout<<a[n]<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/abc1235454/article/details/88791663