zoukankan      html  css  js  c++  java
  • 桐桐的全排列

      题目描述  

    今天,桐桐的老师布置了一道数学作业,要求列出所有从数字1到数字n的连续自然数的排列,要求所产生的任一数字序列中不允许出现重复的数字。因为排列数很多,桐桐害怕写漏了,所以她决定用计算机编程来解决。

      输入  

    只有一个整数n(1≤n≤9)。

      输出  

    按字典序输出由1~n组成的所有不重复的数字序列,每行一个序列,每个数字之间有一个空格。

      样例输入  

    3
    

      样例输出  

    1 2 3
    1 3 2
    2 1 3
    2 3 1
    3 1 2
    3 2 1
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int p[20],n,vis[100],a[100];
     4 void dfs(int k)
     5 {
     6     if(k==n)
     7     {
     8         for(int i=0;i<k;i++)
     9         {
    10             if(i)   cout<<" ";
    11             cout<<p[i];
    12         }
    13         cout<<endl;
    14         return ;
    15     }
    16     for(int i=0;i<n;i++)
    17     {
    18         if(!vis[i])
    19         {
    20             vis[i]=1;
    21             p[k]=a[i];
    22             dfs(k+1);
    23             vis[i]=0;
    24         }
    25     }
    26 }
    27 int main()
    28 {
    29     cin>>n;
    30     for(int i=0;i<n;i++)
    31         a[i]=i+1;
    32     dfs(0);
    33     return 0;
    34 }
    View Code
     
    如有错误,请指正,感谢!
  • 相关阅读:
    OpenSSL EVP_Digest系列函数的一个样例
    简单的函数指针使用
    写入简单的日志log
    C实现日志等级控制
    散列表
    数据结构-链表
    关于线程的几个函数
    MySQL什么时候会使用内部临时表?
    linux如何处理多连接请求?
    Centos下搭建nginx反向代理
  • 原文地址:https://www.cnblogs.com/scott527407973/p/9380762.html
Copyright © 2011-2022 走看看