本文共 486 字,大约阅读时间需要 1 分钟。
题目描述
输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。
输入格式
n(1≤n≤9)
输出格式
由1~n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个常宽。
输入输出样例
输入 #1 复制
3
输出 #1 复制
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
#include <bits/stdc++.h>using namespace std;int a[15],b[15];int n;int f(int x){ int i,j,k; if(x==n) { for(i=0;i<n;i++) cout<<setw(5)<<b[i]; cout<<endl; } for(j=1;j<=n;j++) { if(a[j]==0) { b[x]=j; a[j]=1; f(x+1); //回溯 a[j]=0; } }}int main(){ memset(a,0,sizeof(a)); cin>>n; f(0); return 0;}
转载地址:http://cdue.baihongyu.com/