aboutsummaryrefslogtreecommitdiff
path: root/tests/upload/digui2.sy
blob: 6d0566615fb961d59c42cc6dacb3ed1a1d7a2001 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
int n;
int a[10];
int v[10];

void DFS(int p)
{
	int i=0;
	if(p==n){//边界 
		putarray(n, a);
		putch(10);
		return;
	}
	while (i<n) { //枚举0->n-1(实际是1->n)这些数 v[i]标志这个数是否被访问过 
		if(v[i]==1) {
			i = i+1;
			continue;
		}
		v[i]=1;
		a[p]=i;//p代表位置 每次给一个位置找值 
		DFS(p+1);
		v[i]=0;//回溯 
		i = i+1;
	}
}

int main()
{
	int i;
	while(1){
		n = getint();
		if(n==0) {
			break;
		}
		i=0;
		while (i<10){
			v[i]=0;
			i=i+1;
		}
		DFS(0);
	}
	return 0;
}