求排列方式.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 + -
显示快捷键?