题目:

Y5(72(9@K4{ZO%O)$0L28Z6.png

分析:这道题不难,一种暴力法,写8个循环;另一种函数法,直接调用库函数;
第一种:

include <bits/stdc++.h>

using namespace std;
int main(void)
{

int a1,a2,a3,a4,a5,a6,a7,a8;
for(a1=1;a1<9;a1++)
{
    for(a2=1;a2<9;a2++)
    {
        for(a3=1;a3<9;a3++)
        {
            for(a4=1;a4<9;a4++)
            {
                for(a5=1;a5<9;a5++)
                {
                    for(a6=1;a6<9;a6++)
                    {
                        for(a7=1;a7<9;a7++)
                        {
                            for(a8=1;a8<9;a8++)
                            {
                                if((a1!=a2)&&(a1!=a3)&&(a1!=a4)
                                &&(a1!=a5)&&(a1!=a6)&&(a1!=a7)&&(a1!=a8)
                                &&(a2!=a3)&&(a2!=a4)&&(a2!=a5)&&(a2!=a6)
                                &&(a2!=a7)&&(a2!=a8)&&(a3!=a4)&&(a3!=a5)
                                &&(a3!=a6)&&(a3!=a7)&&(a3!=a8)&&(a4!=a5)
                                &&(a4!=a6)&&(a4!=a7)&&(a4!=a8)&&(a5!=a6)
                                &&(a5!=a7)&&(a5!=a8)&&(a6!=a7)&&(a6!=a8)
                                &&(a7!=a8))
                                {
                                    cout<<a1<<a2<<a3<<a4<<a5<<a6<<a7<<a8<<endl; 
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
return 0;

}
第二种:用到库函数next_permutation(arr,arr+arr.length);
库函数用法

include <bits/stdc++.h>

using namespace std;
int main(void)
{

int arr[8]={1,2,3,4,5,6,7,8};
do
{
    for(int i=0;i<8;i++)
    {
        cout<<arr[i]<<"";
        if(i==7)
        {
            cout<<endl;
        }
    }
}while(next_permutation(arr,arr+8));
return 0;

}