描述
在X星球上的外星人和地球上一样拥有一个长N位的身份证号码,而X星球的人使用的是一种26进制身份证号码,用a~z表示。
在X星球上正在举行一次幸运者抽奖活动,X星球的政府首脑制定了一个特殊的抽奖规则,凡是身份证号码符合对称性质(回文串)的人就能够成为本次活动的幸运者。
现在你知道X星球中最大的身份证号码,希望你能够计算出最多有多少人将成为本次活动的幸运者。
输入
输入数据的第一行为一个正整数N,第二行为一个长度为N的字符串,表示已知的最大身份证号码.
其中 N <= 30
输出
本次活动的最大幸运人数模10000的结果.
样例输入
3
bca
样例输出
28


提示
样例说明:幸运者的身份证号为 a[a~z]a,bab,bbb

 

30个z算出来的结果都和人家一样,但就是wa,郁闷啊。

 

 1 import java.util.Scanner;
 2 public class Main {
 3     public static void main(String[] args) {
 4         Scanner in = new Scanner(System.in);
 5         int len = in.nextInt();
 6         String input = in.next();
 7         if(len==1)
 8             System.out.println(input.charAt(0)-'a'+1);
 9         else
10         {
11             int count=len/2;
12             int ji = 1- len%2;
13             int sum=0;
14             for(int i=0;i<count;i++)
15             {
16                 sum+=(input.charAt(i)-'a')*(Math.pow(26, count- i -ji)%10000);
17                 if(sum>10000)sum%=10000;
18             }
19             int j=0;
20             for(;j<count;j++)
21             {
22                 if(input.charAt(j)>input.charAt(len-j-1))
23                     break;
24             }
25             if(j==count)sum++;
26             if(ji==0)sum+=input.charAt(count)-'a';
27             sum%=10000;
28             System.out.println(sum);
29         }
30     }
31 }
32