zltzlt 发表于 2020-4-25 18:41:37

C++ 打印 n 个数的全排列

本帖最后由 zltzlt 于 2020-4-25 18:49 编辑

C++ 打印 n 个数的全排列

代码

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int n, i, num = 0;

    cout << "请输入整数个数:";
    cin >> n;

    int *a = new int; // 动态分配内存

    for (i = 0; i < n; i++)
    {
      cout << "请输入第 " << i + 1 << " 个整数:";
      cin >> a;
    }

    do
    {
      for (i = 0; i < n; i++)
            cout << a << " ";
      cout << endl;
      num++;
    } while (next_permutation(a, a + n));

    delete[] a; // 释放动态数组
    cout << "一共有 " << num << " 种排列方法";

    return 0;
}

效果

请输入整数个数:5
请输入第 1 个整数:1
请输入第 2 个整数:2
请输入第 3 个整数:3
请输入第 4 个整数:4
请输入第 5 个整数:5
1 2 3 4 5
1 2 3 5 4
1 2 4 3 5
1 2 4 5 3
1 2 5 3 4
1 2 5 4 3
1 3 2 4 5
1 3 2 5 4
1 3 4 2 5
1 3 4 5 2
1 3 5 2 4
1 3 5 4 2
1 4 2 3 5
1 4 2 5 3
1 4 3 2 5
1 4 3 5 2
1 4 5 2 3
1 4 5 3 2
1 5 2 3 4
1 5 2 4 3
1 5 3 2 4
1 5 3 4 2
1 5 4 2 3
1 5 4 3 2
2 1 3 4 5
2 1 3 5 4
2 1 4 3 5
2 1 4 5 3
2 1 5 3 4
2 1 5 4 3
2 3 1 4 5
2 3 1 5 4
2 3 4 1 5
2 3 4 5 1
2 3 5 1 4
2 3 5 4 1
2 4 1 3 5
2 4 1 5 3
2 4 3 1 5
2 4 3 5 1
2 4 5 1 3
2 4 5 3 1
2 5 1 3 4
2 5 1 4 3
2 5 3 1 4
2 5 3 4 1
2 5 4 1 3
2 5 4 3 1
3 1 2 4 5
3 1 2 5 4
3 1 4 2 5
3 1 4 5 2
3 1 5 2 4
3 1 5 4 2
3 2 1 4 5
3 2 1 5 4
3 2 4 1 5
3 2 4 5 1
3 2 5 1 4
3 2 5 4 1
3 4 1 2 5
3 4 1 5 2
3 4 2 1 5
3 4 2 5 1
3 4 5 1 2
3 4 5 2 1
3 5 1 2 4
3 5 1 4 2
3 5 2 1 4
3 5 2 4 1
3 5 4 1 2
3 5 4 2 1
4 1 2 3 5
4 1 2 5 3
4 1 3 2 5
4 1 3 5 2
4 1 5 2 3
4 1 5 3 2
4 2 1 3 5
4 2 1 5 3
4 2 3 1 5
4 2 3 5 1
4 2 5 1 3
4 2 5 3 1
4 3 1 2 5
4 3 1 5 2
4 3 2 1 5
4 3 2 5 1
4 3 5 1 2
4 3 5 2 1
4 5 1 2 3
4 5 1 3 2
4 5 2 1 3
4 5 2 3 1
4 5 3 1 2
4 5 3 2 1
5 1 2 3 4
5 1 2 4 3
5 1 3 2 4
5 1 3 4 2
5 1 4 2 3
5 1 4 3 2
5 2 1 3 4
5 2 1 4 3
5 2 3 1 4
5 2 3 4 1
5 2 4 1 3
5 2 4 3 1
5 3 1 2 4
5 3 1 4 2
5 3 2 1 4
5 3 2 4 1
5 3 4 1 2
5 3 4 2 1
5 4 1 2 3
5 4 1 3 2
5 4 2 1 3
5 4 2 3 1
5 4 3 1 2
5 4 3 2 1
一共有 120 种排列方法

老八秘制 发表于 2020-4-25 18:44:52

做奥数题再也不用一个一个枚举了{:10_256:}建议加上一个最后统计一共有多少种排列方式的

zltzlt 发表于 2020-4-25 18:48:28

老八秘制 发表于 2020-4-25 18:44
做奥数题再也不用一个一个枚举了建议加上一个最后统计一共有多少种排列方式的

{:10_323:}

ShaeZhang 发表于 2020-4-25 20:36:58

原来不一样的,只是思维~~~
向fischC 学习

_2_ 发表于 2020-4-30 17:13:30

额,C++,触及到我的知识盲区了
页: [1]
查看完整版本: C++ 打印 n 个数的全排列