欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【算法竞赛入门经典】例题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;
}