zoukankan      html  css  js  c++  java
  • C++ 全排列

    按顺序输出n位数的全排列,n位数为1-n。如n=3,则输出123,132,213,231,312,321

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n;
        cin >> n;
        int num[10];
        for(int i = 1;i <= n;++i)
            num[i-1] = i;
        do{
            for(int j = 0;j < n;j++)
                cout << num[j];
            cout << endl;
        }while(next_permutation(num, num+n));
    }

    参考文章:https://www.cnblogs.com/aiguona/p/7304945.html

    1)next_permutation:求下一个排列组合 

    a.函数模板:next_permutation(arr, arr+size);
    b.参数说明:
      arr: 数组名
      size:数组元素个数
    c.函数功能: 返回值为bool类型,当当前序列不存在下一个排列时,函数返回false,否则返回true,排列好的数在数组中存储

    d.注意:在使用前需要对欲排列数组按升序排序,否则只能找出该序列之后的全排列数。
        比如,如果数组num初始化为2,3,1,那么输出就变为了:{2 3 1} {3 1 2} {3 2 1}

    2)prev_permutation:求上一个排列组合

    a.函数模板:prev_permutation(arr, arr+size);
    b.参数说明:
      arr: 数组名
      size:数组元素个数
    c.函数功能: 返回值为bool类型,当当前序列不存在上一个排列时,函数返回false,否则返回true
    d.注意:在使用前需要对欲排列数组按降序排序,否则只能找出该序列之后的全排列数。

  • 相关阅读:
    数组相关操作
    控制结构和函数
    调用函数和方法
    常用类型、算术和操作符重载
    函数式 CSS (FCSS)
    Javascript 封装问题
    认识javascript中的作用域和上下文
    Javascript 继承-原型的陷阱
    解耦你的HTML,CSS和JAVASRIPT
    网格如此简单
  • 原文地址:https://www.cnblogs.com/zcl843264327/p/11229097.html
Copyright © 2011-2022 走看看