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

评论