原題:
演算法提高 排列數
時間限制:1.0s 記憶體限制:256.0mb
問題描述
0、1、2三個數字的全排列有六種,按照字母序排列如下:
012、021、102、120、201、210
輸入乙個數n
求0~9十個數的全排列中的第n個(第1個為0123456789)。
輸入格式
一行,包含乙個整數n
輸出格式
一行,包含一組10個數字的全排列
樣例輸入
樣例輸出
資料規模和約定
0 < n <= 10!
思路:在這裡簡單介紹一下next_permutation函式,這是乙個全排列函式,原理是直到當字串按字典序為倒序為止。所以用在這裡正好解決。**如下:
#include #include #include using namespace std;
int main()
m++;
}return 0;
}
需要注意的是:
因為while裡面已經執行next-permutation()函式了,所以是開始就是第二個,所以如果輸入1的話就直接輸出。當然,也可以轉化為do...while()形式:
#include #include #include using namespace std;
int main()
}while(next_permutation(str.begin(),str.end()));
return 0;
}
藍橋杯 演算法提高 逆序排列
問題描述 編寫乙個程式,讀入一組整數 不超過20個 並把它們儲存在乙個整型陣列中。當使用者輸入0時,表示輸入結束。然後程式將把這個陣列中的值按逆序重新存放,並列印出來。例如 假設使用者輸入了一組資料 7 19 5 6 2 0,那麼程式將會把前五個有效資料儲存在乙個陣列中,即7 19 5 6 2,然後...
藍橋杯 演算法提高 逆序排列
演算法提高 逆序排列 時間限制 1.0s 記憶體限制 512.0mb 問題描述 編寫乙個程式,讀入一組整數 不超過20個 並把它們儲存在乙個整型陣列中。當使用者輸入0時,表示輸入結束。然後程式將把這個陣列中的值按逆序重新存放,並列印出來。例如 假設使用者輸入了一組資料 7 19 5 6 2 0,那麼...
C程式 藍橋 演算法提高 排列數
問題描述 0 1 2三個數字的全排列有六種,按照字母序排列如下 012 021 102 120 201 210 輸入乙個數n 求0 9十個數的全排列中的第n個 第1個為0123456789 輸入格式 一行,包含乙個整數n 輸出格式 一行,包含一組10個數字的全排列 樣例輸入 樣例輸出 資料規模和約定...