Project Euler Problem 24 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; }