zoukankan      html  css  js  c++  java
  • UVa 10624

    题目大意

    给定两个数n和m,如果长度为m的数满足对于每个i(n<=i<=m),数字的前i位都能被i整除,那么这个数就是超级数,求出字典序最小的符合要求的超级数。

    分析

    直接暴力搜索

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    int str[50];
    int n,m,flag;
    int judge(int cur)
    {
    int sum=0;
    for(int i=0; i<cur; i++)
    sum=(sum*10+str[i])%cur;
    return sum;
    }
    void dfs(int cur)
    {
    if(flag==1)
    return ;
    if(cur==m)
    {
    flag=1;
    return ;
    }
    for(int i=0; i<=9; i++)
    {
    str[cur]=i;
    if((cur<n-1)||!judge(cur+1))
    {
    dfs(cur+1);

    }
    if(flag==1)
    return ;
    }
    }
    int main()
    {
    int t;
    scanf("%d",&t);
    for(int ii=1; ii<=t; ii++)
    {
    scanf("%d %d",&n,&m);
    flag=0;
    for(int i=1; i<=9; i++)
    {
    str[0]=i;
    dfs(1);
    if(flag==1)
    {
    printf("Case %d: ",ii);
    for(int i=0; i<m; i++)
    printf("%d",str[i]);
    printf(" ");
    break;
    }
    }
    if(flag==0)
    printf("Case %d: -1 ",ii);
    }
    return 0;
    }

  • 相关阅读:
    C++课程的第一次实验
    First C++
    7-12 关于堆的判断
    大笨钟
    7-14 喊山
    L3-010 是否完全二叉搜索树 (30分)
    7-13 天梯地图
    7-10 排座位
    7-9 抢红包
    帅到没朋友
  • 原文地址:https://www.cnblogs.com/tsw123/p/4338082.html
Copyright © 2011-2022 走看看