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;
}
评论