1100. Mars Numbers (20)
重写了乙级的代码
注意13的整数倍的转换
#include <stdio.h>
#include <string.h>
int main()
{
char low[13][5]={"tret","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"};
char high[13][4]={"","tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};
int n;
scanf("%d",&n);
getchar();
while(n--)
{
char s[12];
gets(s);
if(s[0]>='0'&&s[0]<='9')
{
int i,num=0;
for(i=0;i<strlen(s);++i)
{
num=num*10+s[i]-'0';
}
if(num/13==0)
printf("%s\n",low[num]);
else if(num%13)
printf("%s %s\n",high[num/13],low[num%13]);
else
printf("%s\n",high[num/13]);
}
else
{
char lc[8],hc[8];
int i,num=0,j,tag=0;
for(i=0;i<strlen(s);++i)
{
if(s[i]==' ')break;
hc[i]=s[i];
}
hc[i]='\0';j=i;
if(i==strlen(s))
{
for(i=0;i<13;++i)
{
if(strcmp(hc,low[i])==0)
{
printf("%d\n",i);break;
}
if(strcmp(hc,high[i])==0)
{
printf("%d\n",i*13);break;
}
}
}
int k=0;
i=j+1;
while(i<strlen(s))
{
lc[k]=s[i];tag=1;
++k;++i;
}
lc[k]='\0';
for(i=0;i<13;++i)
{
if(strcmp(hc,high[i])==0)
{
num=i*13;break;
}
}
for(i=0;i<13;++i)
{
if(strcmp(lc,low[i])==0)
{
num+=i;break;
}
}
if(tag)printf("%d\n",num);
}
}
return 0;
}