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;
}
浙公网安备 33010602011771号