首页 > 代码库 > 火星计数法
火星计数法
火星计数法
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 32 Solved: 17
[Submit][Status][Discuss]Description
火星计数法
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 32 Solved: 17
[Submit][Status][Discuss]
火星人的计数规则里只有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取模)。每行输出一个结果。
Sample Input
2 a ab
Sample Output
1 6
暴力枚举;
#include<stdio.h> #include<string.h> int p(int x) { int sum=1,i; for(i=0;i<x;i++) { sum*=4; sum=sum%10000007; } return sum; } int main() { int test,len,ans,i; char a[105]; scanf("%d",&test); while(test--) { scanf("%s",a); len=strlen(a); ans=0; for(i=0;i<len;i++) { ans+=(a[i]-'a'+1)*p(len-1-i); ans=ans%10000007; } printf("%d\n",ans); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。