藍橋杯演算法提高 排列數

2021-07-26 08:17:35 字數 817 閱讀 1414

原題:

演算法提高 排列數  

時間限制: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個數字的全排列 樣例輸入 樣例輸出 資料規模和約定...