題目連結 http://zerojudge.tw/ShowProblem?problemid=a524。
用Standard Template Library: Algorithms裡的prev_permutation解。
程式碼:
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int n;
while( scanf("%d", &n) != EOF ) {
int *number = new int[n];
for( int i = 0; i < n; i++ )
number[i] = n - i;
do {
for( int i = 0; i < n; i++ )
printf("%d", number[i]);
printf("\n");
} while ( std::prev_permutation(number, number + n) );
delete number;
}
return 0;
}
沒有留言:
張貼留言