#include<algorithm>
1. sort(array, array + length) 排序,default小到大
若要大到小
方法:
1. reverse(array, array + length)
2.sort(array, array + length, cmp)
bool cmp(int a, int b){
return a > b; //升冪排列 (return a < b; 降冪)
}
字典排序
小到大
next_permutation(array, array + length)
大到小
prev_permutation(array, array + length)
此題要字典排序大到小,故sort大到小再prev_permutation即可。
迴圈
輸入
先將陣列設為 n ~1
再利用字典排序輸出
#include <cstdio>
#include <algorithm>
using namespace std;
int main ()
{
int n;
int guess[10];
while(~scanf("%d", &n))
{
for(int i = 0; i<n; i++)
guess[i] = n-i;
do
{
for(int i = 0; i<n; i++)
printf("%d", guess[i]);
printf("\n");
}
while( prev_permutation(guess,guess + n) );
}
return 0;
}
留言列表