zoukankan      html  css  js  c++  java
  • 生成元

    算法竞赛入门经典第二版p52
    例题3-5:
    如果x+x的各个数字之和得到y,就是说x是y的生成元。给出n(1<=n<=100000),
    求最小生成元。无解输出0.例如,n=216,121,2005时的解分别是198,0,1979.
    利用打表法:
    代码:

    #include <stdio.h>
    #include <stdlib.h>
    #define maxn 100005
    int anx[maxn];
    int main()
    {
        int T,n;
        memset(anx,0,sizeof(anx));
        int m;
        for(m=0;m<maxn;m++)
        {
            int x,y;
            x=m,y=m;
            while(x>0)
                y=y+x%10,x=x/10;
            if(anx[y]==0||m<anx[y])
                anx[y]=m;
        }
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            printf("%d
    ",anx[n]);
        }
        return 0;
    }
    
  • 相关阅读:
    C# 中对COOKIES的操作
    guruguru
    异或序列
    最优贸易
    farm
    Fruit Ninja
    商务旅行
    Generation I
    Heritage of skywalkert
    Bichrome Tree
  • 原文地址:https://www.cnblogs.com/webmen/p/5739656.html
Copyright © 2011-2022 走看看