求排列方式.txt

来自「解决排列组合问题的通用算法,自然数得拆分,求最大公约数的算法」· 文本 代码 · 共 55 行

TXT
55
字号
/*
   author: qiaoger 
   from  : Computer Science Department of Sichuan University
   email : qiaoger@tom.com
   date  : 2005-4-30

	求排列的方式
*/
#include<stdio.h>
const int MAX=20;
int r[MAX];//结果
bool sign[MAX];
int t;

void search(int k,int n, int count)//共n个数,考察第k个数的位置,count记录已考察的数量
{
	if(count == n)
	{
		for(int j=0; j<n; j++)
			printf("%d ",r[j]);
		printf("\n");
		t++;
		return ;
	}
  int i;
  for(i=1; i<=n; i++)
	{
		if(!sign[i])
		{
			sign[i] = true;
			r[count] = i;
			search(k+1,n,count+1);
			sign[i] = false;
		}
	}
	return ;
}

int main()
{
	int n;
	int j;
	while(scanf("%d",&n)==1)
	{
		if(n==0)
		  break;
		for(j=0; j<n; j++)
			  r[j] = 0;
		t = 0;
		search(1,n,0);

		printf("排列方式共有:%d 种\n",t);
	}
	return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?