1005.cpp

来自「这是在acm上所做的1005-1007」· C++ 代码 · 共 65 行

CPP
65
字号
#include <stdio.h>

#define  N     10

int n,a[N];

void sort(int k){

	int i,j,temp;
	for(i=k;i<n;i++)
		for(j=k;j<=n-k;j++)
			if(a[j]>a[j+1]){
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}

}

void perm(int m){

	int i,j,temp,b[N]={0};

	if(m==n){

		for(j=1;j<=n;j++)
			printf("%d ",a[j]);
		putchar('\n');

		return;
	}else{

		for(j=m;j<=n;j++){
			
			temp=a[j];
			a[j]=a[m];
			a[m]=temp;
            for(i=m;i<=n;i++)
				b[i]=a[i];
			sort(m+1);
			perm(m+1);
			temp=a[j];
			a[j]=a[m];
			a[m]=temp;
			for(i=m;i<=n;i++)
				a[i]=b[i];

		}
	}
}

int  main(){

	int i;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		a[i]=i;
	perm(1);

	return 0;

}


⌨️ 快捷键说明

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