全排列

輸入一個數輸出從一到這個數的全排列:

#include<stdio.h>
#define  MAXSIZE 5
int a[MAXSIZE] = {0};
int s[MAXSIZE] = {0};

int n;

void dfs(int j);
int main()
{
	scanf("%d", &n);
	dfs(0);
	return 0;
}

void dfs(int j)
{
	int i;
	if(j == n)
	{
		for(i = 0; i < n; i++)
			printf("%d", a[i]);
		printf("\n");
		return ;
	}
	for(i = 0 ; i < n; i++)
	{
		if(s[i] == 0)
		{
			s[i] = 1;
			a[j] = i + 1;
			dfs(j + 1);
			s[i] = 0; 
		}
	}
}


發佈了50 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章