15,440
社区成员
发帖
与我相关
我的任务
分享
0 2 4 1 3
0 3 1 4 2
1 3 0 2 4
1 3 0 4 2
1 4 2 0 3
2 0 3 1 4
2 0 4 1 3
2 4 0 3 1
2 4 1 3 0
3 1 4 0 2
3 1 4 2 0
3 0 2 4 1
4 1 3 0 2
4 2 0 3 1
#include <iostream>
#include <cmath>
using namespace std;
void swap(int A[],int i,int j)
{
int tmp = A[i];
A[i] = A[j];
A[j] = tmp;
return;
}
void showA(int A[],int len)
{
for (int i=0;i<len;++i)
cout<<A[i]<<'\t';
cout<<endl;
return ;
}
void getA(int A[],int dep,int len)
{
if (dep > 1 && abs(A[dep-1]-A[dep-2])<2) return;
if (dep == len)
showA(A,len);
else
for (int i=dep;i<len;++i)
{
swap(A,dep,i);
getA(A,dep+1,len);
swap(A,dep,i);
}
return;
};
int main()
{
int A[8]={0,1,2,3,4,5,6,7};
getA(A,0,8);
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
void swap(int A[],int i,int j)
{
int tmp = A[i];
A[i] = A[j];
A[j] = tmp;
return;
}
void showA(int A[],int len)
{
for (int i=0;i<len;++i)
cout<<A[i]<<'\t';
cout<<endl;
return ;
}
void getA(int A[],int dep,int len)
{
if (dep > 2 && abs(A[dep-1]-A[dep-2])<2) return;
if (dep == 8)
{
showA(A,8);
return;
}
for (int i=dep;i<len;++i)
{
swap(A,dep,i);
getA(A,dep+1,len);
swap(A,dep,i);
}
return;
};
int main()
{
int A[8]={0,1,2,3,4,5,6,7};
getA(A,0,8);
return 0;
}