算24(一种简单的穷举4个元素的所有排列的方法)
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
输入4个整数,输出他们的所有排列。(提示用4重的for循环实现)
输入:
4个1~13之间的整数。
输出:
按输出样例中的次序输出这4个数的所有排列,每个排列占一行(注意:两个数字之间有一个空格,一行的开始和结尾都没有空格)。
输入样例:
1 2 3 4
输出样例:
1 2 3 4 1 2 4 3 1 3 2 4 1 3 4 2 1 4 2 3 1 4 3 2 2 1 3 4 2 1 4 3 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1 3 1 2 4 3 1 4 2 3 2 1 4 3 2 4 1 3 4 1 2 3 4 2 1 4 1 2 3 4 1 3 2 4 2 1 3 4 2 3 1 4 3 1 2 4 3 2 1
#include<iostream>
using namespace std;
void init();
void search(int n);
void output();
int a[4],b[4],used[4]={0};
int main()
{
init();
search(0);
return 0;
}
void init()
{
int i;
for(i=0;i<4;i++)
{
cin>>a[i];
}
}
void search(int n)
{
int i;
if(n==4)
{
output();
}
else
{
for(i=0;i<4;i++)
{
if(used[i]==0)
{
b[n]=a[i];
used[i]=1;
search(n+1);
used[i]=0;
}
}
}
}
void output()
{
int i;
for(i=0;i<4;i++)
{
if(i<3)
{
cout<<b[i]<<" ";
}
else
{
cout<<b[i]<<endl;
}
}
}