7-3 输出全排列 (20 分)

阅读 60

2022-03-30

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。

输入格式:

输入给出正整数n(<10)。

输出格式:

输入样例:

3

输出样例:

123
132
213
231
312
321

代码:

#include <iostream>

using namespace std;

int n, arr[10], visit[10];

void dfs(int begin)
{
    if(begin>n)
    {
        for(int i=1; i<=n; i++) cout<<arr[i];
        cout<<endl;
    }

    else
    {
        for(int i=1; i<=n; i++)
        {
            if(visit[i]==0)
            {
                arr[begin] = i;
                visit[i] = 1;
                dfs(begin+1);
                visit[i] = 0;
            }
        }
    }
}

int main()
{
    cin>>n;
    dfs(1);
    return 0;
}

精彩评论(0)

0 0 举报