Project Euler Problem 24 Lexicographic permutations

Lexicographic permutations

Problem 24

A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:

012   021   102   120   201   210

What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?


C++:

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1000000;

int main()
{
    int val[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    for(int i=1; i<N; i++)
        next_permutation(val, val+10);

    for(int i=0; i<(int)(sizeof(val)/sizeof(int)); i++)
        cout << val[i];
    cout << endl;

    return 0;
}



原文地址:https://www.cnblogs.com/tigerisland/p/7564000.html