火星计数法
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<cstdio> using namespace std; int main() { int n,m; scanf("%d",&n); while(n--) { scanf("%d",&m);
if(m>=270) { printf("0.69\n"); } else { double sum=0; int flag=1; for(int i=1;i<=m;i++) { sum+=1.0/i*flag; if(flag==1) { flag=-1; } else flag=1; } printf("%.2lf\n",sum); } } return 0; }