如何打印数字的所有排列

时间:2019-01-10 02:03:48

标签: c++ algorithm

任何人都可以用C ++代码帮助我,该代码打印出给定数字的所有可能排列。

例如,如果数字N = 123,则{123,132,213,231,312,321}是可能的排列。

我已经研究过,并且只能找到字符串而不是整数的代码。

谢谢。

1 个答案:

答案 0 :(得分:3)

您可以使用:

void display_permutation(std::size_t n)
{
    std::string s = std::to_string(n);
    std::sort(s.begin(), s.end());
    do {
        std::cout << s << std::endl;
    } while (std::next_permutation(s.begin(), s.end()));
}

Demo