康托展开

public class main
{

public static void main(String[] args)
{

    // TODO Auto-generated method stub
    System.out.println("请输入正整数");
    Scanner sc=new Scanner(System.in);    
    int n=sc.nextInt();
    sc.nextLine();
    for(int i=0;i<n;i++)
    {
        String s1="abcdefghijkl";
        char[] arr1=s1.toCharArray();
        System.out.println("请输入字符串");
        String s2=sc.nextLine();
        //System.out.println(s2);
        char[] arr2=s2.toCharArray();
        int rank=0;
        for(int j=0;j<12;j++)
        {
            int index=findIndex(arr1, arr2[j]);
            rank=rank+index*factorial(12-1-j);
            System.out.println("元素所在坐标"+arr2[j]+index);
            arr1[arr2[j]-'a']='l'+1;

        }
        System.out.println(rank+1);
    }

}
static public int factorial(int n)
{
    int result=1;
    for(int i=1;i<=n;i++)
    {
        result=result*i;
    }
    return result;
}
static public int findIndex(char[] arr,char c)
{
    int index=0;
    for(int i=0;i<12;i++)
    {
        if(arr[i]<c)
            index++;
        //System.out.println(arr[i]+" "+c);
        //System.out.println("元素所在坐标"+index);
    }

    return index;
}

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务