程序设计题!请用C语言回答哈哈
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/13 02:08:11
程序设计题!请用C语言回答哈哈
n个元素{1,2,...,n }有n!个不同的排列.将这n!个排列按字典序排列,并编号为0,1,…,-1.每个排列的编号为其字典序值.例如,当n=3时,6 个不同排列的字典序值如下:
0 1 2 3 4 5
123 132 213 231 312 321
任务:给定n 以及n 个元素{1,2,...,n }的一个排列,计算出这个排列的字典序值,以及按字典序排列的下一个排列.
Input
第1 行是元素个数n(n < 15).接下来的1 行是n个元素{1,2,...,n }的一个排列.
Output
第一行是字典序值,第2行是按字典序排列的下一个排列.
Sample Input
8
2 6 4 5 8 1 7 3Sample Output
8227
2 6 4 5 8 3 1 7
n个元素{1,2,...,n }有n!个不同的排列.将这n!个排列按字典序排列,并编号为0,1,…,-1.每个排列的编号为其字典序值.例如,当n=3时,6 个不同排列的字典序值如下:
0 1 2 3 4 5
123 132 213 231 312 321
任务:给定n 以及n 个元素{1,2,...,n }的一个排列,计算出这个排列的字典序值,以及按字典序排列的下一个排列.
Input
第1 行是元素个数n(n < 15).接下来的1 行是n个元素{1,2,...,n }的一个排列.
Output
第一行是字典序值,第2行是按字典序排列的下一个排列.
Sample Input
8
2 6 4 5 8 1 7 3Sample Output
8227
2 6 4 5 8 3 1 7
//别问我为什么,这是数学问题
#include
void main()
{
int n,a[15];
int i,j,k,temp;
int rank=0;
scanf("%d",&n);
for(i=0;i
#include
void main()
{
int n,a[15];
int i,j,k,temp;
int rank=0;
scanf("%d",&n);
for(i=0;i