特殊数

特殊数

 

Time Limit:   1000MS       Memory Limit:   65535KB
Submissions:   83       Accepted:   29

 

Description
特殊数就是这样一个数:这个数用到1到9这几个组成,每个数字刚好只出现一次。这个数的第一位能被1整除(废话),前两位能被2整除,前三位能被3整除......前N位能被N整除,整个数能被9整除。

 

Input
n(1<=n <=9并且保证有特殊数存在),表示有几位

 

Output
此特殊数(最小的一个)

 

Sample Input

 

1

 

Sample Output

 

1

 

解析:

这也算是一道水题,就用简单的深搜即可得到结果,见如下代码:

 

# include<stdio.h>
# include<string.h>
int vis[12];
int n,leap;
void DFS(int index,int num)//index用来记录现在的位数,num用来记录index-1位的值
{
    int i;
    if(leap)return;
    if(index==n+1)
    {
        printf("%d\n",num);
        leap=1;
        return;
    }
    for(i=1;i<=9;i++)
    {
        if(leap)break;
        if(vis[i]==0&&(10*num+i)%index==0)
        {
         vis[i]=1;
         DFS(index+1,10*num+i);
         vis[i]=0;
        }
    }
}
int main()
{
    scanf("%d",&n);
    leap=0;
    memset(vis,0,sizeof(vis));
    DFS(1,0);
    return 0;
}

 

 

 

posted on 2013-03-05 21:43  即为将军  阅读(971)  评论(0)    收藏  举报

导航