時間限制: 1 Sec 記憶體限制: 128 MB
提交: 24 解決: 10
[提交][狀態][論壇]
題目描述
二師兄一個寒假盡在吃喝玩樂,還老愛坑三師兄,于是乎,出了一個全排列的題目。。為了德瑪西亞戰斗吧~!~,。
納尼~!~什么是全排列,,看下資料就懂啦,題目略難。。
輸入
一個m代表多少組資料,
每行一個9以內的數字n,輸出1~n的全排列
輸出
輸出1~n的全排列每組資料之間有一個空行。。
樣例輸入
3
1
2
3
樣例輸出
1
12
21
123
132
213
231
312
321
提示
uj5u.com熱心網友回復:
這道題出的不嚴謹,不是很好,全排列演算法有好多種,也許得到的結果在排列順序上會有一些差別,這樣就可能導致錯誤。我做了一下。這是我的代碼,結果和上述例子有細小差別。不過也能找到n的全排列,只是這道題是通不過的。
#include <bits/stdc++.h>
using namespace std;
int a[10];
int n;
void dg(int m,int a[])
{
if(m==n)
{
for(int i=1;i<=n;i++)
{
printf("%d",a[i]);
}
printf("\n");
}
for(int i=m;i<=n;i++)
{
int temp = a[m];
a[m] = a[i];
a[i] = temp;
dg(m+1, a);
temp = a[m];
a[m] = a[i];
a[i] = temp;
}
}
int main()
{
int m;
scanf("%d",&m);
while(m--)
{
memset(a,0,sizeof(a));
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
a[i]=i;
}
dg(1,a);
printf("\n");
}
return 0;
}
這是結果,有細小差別uj5u.com熱心網友回復:
STL有一個全排列函式你可以試試轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53502.html
標籤:基礎類
