#include "stdio.h"
#include "stdlib.h"
int main()
{
char str[20];
while(scanf("%s",str)!=EOF)
{
int index=0;
int step[]={40320,5040,720,120,24,6,2,1};
for(int i=0;i<sizeof(step)/sizeof(int);i++)
{
index+=(str[i]-'0')*step[i];
int t=i;
while(str[++t])
if(str[t]>str[i]) str[t]--;
}
printf("%d/n",index);
}
return 0;
}
0到8 共9个数字的排列组合,总共有9!个,对这9!个组合排序,输入任意一个组合,输出这个组合的索引.
如
input:876542310
output:362873

被折叠的 条评论
为什么被折叠?



