0
点赞
收藏
分享

微信扫一扫

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

人间四月天i 2022-03-30 阅读 60

请编写程序输出前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 条评论