#include<iostream>
using namespace std;
const int MAXN = 100;
int x[MAXN];
int ok(int k)
{
int i;
for (i = 0; i < k; i++)
{
if (x[i] == x[k])
return 0;
}
return 1;
}
void print(int n)
{
int i;
for (i = 0; i < n; i++)
cout << x[i] << ' ';
cout << endl;
}
void solve(int n)
{
int k = 0;
x[k] = 0;
while (k >= 0)
{
x[k]++;
while(x[k] <= n && !ok(k))
x[k]++;
if (x[k] <= n)
{
if (k == n - 1)
{
print(n);
}
else
{
k++;
x[k] = 0;
}
}
else
{
k--;
}
}
}
int main()
{
solve(5);
cin.get();
return 0;
}
全排列
最新推荐文章于 2014-07-06 21:53:08 发布