import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int T = input.nextInt();
input.nextLine();
while(T-->0)
{
String sc = input.nextLine();
int ans = 0;
for(int i=0;i<sc.length();i++)
{
ans+=(sc.charAt(i)-'a'+1)*f(sc.length()-1-i);
ans%=10000007;
}
System.out.println(ans);
}
}
public static int f(int x)
{
int sum =1;
for(int i=0;i<x;i++)
{
sum*=4;
sum=sum%10000007;
}
return sum;
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int T = input.nextInt();
input.nextLine();
while(T-->0)
{
String sc = input.nextLine();
int ans = 0;
for(int i=0;i<sc.length();i++)
{
ans+=(sc.charAt(i)-'a'+1)*f(sc.length()-1-i);
ans%=10000007;
}
System.out.println(ans);
}
}
public static int f(int x)
{
int sum =1;
for(int i=0;i<x;i++)
{
sum*=4;
sum=sum%10000007;
}
return sum;
}
}
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
火星人的计数规则里只有a,b,c,d四个字母,计数规则从小到大是 a,b,c,d,aa,ab,ac,ad,ba,……。
给出来由a,b,c,d四种字母组成的火星数字,算出该数字是第几个(从1开始)。
Input
第一行输入一个数T代表测试用例组数(T<=200),接下来T组测试用例,每组测试数据为一个火星数字(长度小于100)。
Output
对于每组测试用例,输出该火星数字代表多少(结果对10000007取模)。每行输出一个结果。
Example Input
2 a ab
Example Output
1 6
Hint
Author
中国海洋大学第三届“朗讯杯”编程比赛高级组试题