正文

Zju 1530 Find The Multiple2006-08-02 22:52:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/cruxd/17136.html

分享到:

1994302 2006-08-02 22:41:45 Accepted 1530 C++ 00:00.01 440K St.Crux

好吧,我承认,做这个题之前我犹豫了好一阵子:到底是不是dfs?不过这个数据够小的了,n<=200,递归层数<=100。

#include <cstdio>

int n, t, a[100], ac;

void dfs(int c, int s)
{
 if(!s && !ac)
 {
  ac = 1;
  for(int i = 0; i < c; i ++)
  {
   printf("%d", a[i]);
  }
  printf("\n");
 }
 else
 {
  if(c < 100 && !ac)
  {
   a[c] = 1;
   dfs(c + 1, (s * 10 + 1) % n);
   a[c] = 0;
   dfs(c + 1, (s * 10) % n);
  }
 }
}


int main()
{
 while(scanf("%d", &n) && n)
 {
  a[0] = 1, ac = 0;
  dfs(1, 1);
 }
 return 0;
}

阅读(3613) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册