📄 3155589_ac_141ms_2344k.java
字号:
import java.util.*;
import java.math.*;
public class Main
{
public static void main(String [] args)
{
new Main().run();
}
private void run()
{
Scanner cin = new Scanner (System.in);
int n;
String num;
while(true)
{
n = cin.nextInt();
if(n==0)
{
break;
}
num = cin.next();
System.out.println(calc(num,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
}
}
private BigInteger calc(String num,String al)
{
if(num.length()==1)
{
return BigInteger.valueOf(al.indexOf(num.charAt(0)));
}
int index = al.indexOf(num.charAt(0));
if(index==0)
{
return calc(num.substring(1),al.substring(1));
}
BigInteger ret = BigInteger.valueOf(index);
ret = ret.multiply(A(al.length()-1,num.length()-1));
return ret.add(calc(num.substring(1),al.substring(0,index)+al.substring(index+1)));
}
private BigInteger A(int n, int k)
{
BigInteger ret = BigInteger.ONE;
for(int i = n; i > n-k; i--)
{
ret = ret.multiply(BigInteger.valueOf(i));
}
return ret;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -