火星计数法 Time Limit: 1000MS Memory limit: 65536K 题目描述火星人的计数规则里只有a,b,c,d四个字母,计数规则从小到大是 a,b,c,d,aa,ab,ac,ad,ba,……。给出来由a,b,c,d四种字母组成的火星数字,算出该数字是第几个(从1开始)。输入第一行输入一个数T代表测试用例组数(T<=200),接下来T组测试用例,每组测试数据为一个火星数字(长度小于100)。输出对于每组测试用例,输出该火星数字代表多少(结果对10000007取模)。每行输出一个结果。示例输入
2
a
ab
示例输出
1
6
#include<stdio.h>
#include<string.h>
int pp(int x)
{int sum=1;for(int i=0;i<x;i++){sum*=4;sum=sum%10000007;}return sum;
}
int main()
{int test;char a[105];scanf("%d",&test);while(test--){scanf("%s",a);int len=strlen(a);int ans=0;for(int i=0;i<len;i++){ans+=(a[i]-'a'+1)*pp(len-1-i);ans=ans%10000007;}printf("%d\n",ans);}return 0;
}