zoukankan      html  css  js  c++  java
  • Code

    【题目描述】

    给定一个n,表示一个由0~9数字构成的n位密码。

    解锁时一直读入,只要当最后读入的n个数字与密码吻合,就解锁。

    现需要输出一个长度为10n+n-1的数字序列,这个数字序列包括了n位密码的所有可能。

    【输入描述】

    输入若干行,每行一个整数n(0 <= n <= 6)。

    【输出描述】

    与输入相对应,每行输出一串数字序列。

    【样例输入】

    1

    2

    0

    【样例输出】

    0123456789

    00102030405060708091121314151617181922324252627282933435363738394454647484955657585966768697787988990

    听说是个欧拉回路裸题(不明觉厉):

    源代码:
    
    #include<cstdio>
    #include<cstring>
    const int Pow[7]={1,10,100,1000,10000,100000,1000000};
    int n,Top,Num[1000001],Q[1000001];
    bool Vis[1000001];
    void DFS()
    {
        for (int a=1;a<n;a++)
          putchar('0');
        memset(Vis,0,sizeof Vis);
        memset(Num,0,sizeof Num);
        Top=1;
        Vis[0]=true;
        Q[Top]=0;
        while (Top!=Pow[n])
        {
            int T1=Q[Top];
            if (Num[T1]==10)
            {
                Vis[T1]=Num[T1]=0;
                Top--;
                continue;
            }
            Num[T1]++;
            int T2=(T1*10+Num[T1]-1)%Pow[n];
            if (Vis[T2])
              continue;
            Vis[T2]=true;
            Q[++Top]=T2;
        }
        for (int a=1;a<=Top;a++)
          printf("%d",Q[a]%10);
    }
    int main()
    {
        while(scanf("%d",&n))
        {
            if (!n)
              break;
            if (n==1)
              printf("0123456789");
            else
              DFS();
            putchar('
    ');
        }
        return 0;
    }
  • 相关阅读:
    vue 封装tarbar组件
    vue 路由守卫
    mint ui switch 开关
    数据库与实例的关系
    Grafana使用总结
    阿里P7前端需要哪些技能
    laravel -- 自定义Api接口全局异常处理
    laravel -- 单元测试
    laravel 项目迁移后重新生成链接文件
    laravel HTTP 请求, 接受参数处理
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5805285.html
Copyright © 2011-2022 走看看