PTA乙级题 1044. 火星数字(20)
个人感觉不难,但是我写的超级超级麻烦。
#include<stdio.h>
#include<string.h>
#include<math.h>
void jiang(int n);
int main(void)
{
int n;
scanf("%d ",&n);
int i,b,c=0,j,l;
char a[n][8];
int sh,ch;
for(i=0;i!=n;i++)
{
for(j=0;j!=8;j++)
a[i][j]=0;
}
for(i=0;i!=n;i++)
{
c=0,l=0,sh=0,ch=0;
gets(a[i]);
if(a[i][0]>=48&&a[i][0]<=57)
{
b=strlen(a[i]);
for(j=0;j!=b;j++)
{
c=c+(a[i][j]-48)*(int)pow(10,b-j-1);
}
jiang(c);
}
else
{
if(strlen(a[i])==3)
{
for(j=0;j!=3;j++)
l=l+a[i][j];
switch(l)
{
case 313:
{
if(a[i][0]=='j')
printf("1");
else
printf("26");
};break;
case 301:printf("2");break;
case 320:
{
if(a[i][0]=='m')
printf("3");
else
printf("104");
};break;
case 323:
{
if(a[i][0]=='a')
printf("4");
else
printf("78");
};break;
case 327:printf("5");break;
case 333:printf("6");break;
case 335:printf("7");break;
case 317:printf("8");break;
case 328:printf("9");break;
case 326:
{
if(a[i][0]=='o')
printf("10");
else
printf("130");
};break;
case 339:printf("11");break;
case 300:printf("12");break;
case 322:printf("13");break;
case 303:printf("39");break;
case 325:printf("52");break;
case 344:printf("65");break;
case 310:printf("91");break;
case 357:printf("117");break;
case 324:printf("143");break;
case 334:printf("156");break;
}
printf("\n");
}
else if(strlen(a[i])==4)
printf("0\n");
else
{
int k=0;
for(j=0;j!=3;j++)
ch=ch+a[i][j];
for(j=4;j!=7;j++)
sh=sh+a[i][j];
switch(ch)
{
case 322:c=c+13*1;break;
case 313:c=c+13*2;break;
case 303:c=c+13*3;break;
case 325:c=c+13*4;break;
case 344:c=c+13*5;break;
case 323:c=c+13*6;break;
case 310:c=c+13*7;break;
case 320:c=c+13*8;break;
case 357:c=c+13*9;break;
case 326:c=c+13*10;break;
case 324:c=c+13*11;break;
case 334:c=c+13*12;break;
}
switch(sh)
{
case 313:c=c+1;break;
case 301:c=c+2;break;
case 320:c=c+3;break;
case 323:c=c+4;break;
case 327:c=c+5;break;
case 333:c=c+6;break;
case 335:c=c+7;break;
case 317:c=c+8;break;
case 328:c=c+9;break;
case 326:c=c+10;break;
case 339:c=c+11;break;
case 300:c=c+12;break;
}
printf("%d\n",c);
}
}
}
return 0;
}
void jiang(int n)
{
if(n/13==0)
{
switch(n)
{
case 0:printf("tret");break;
case 1:printf("jan");break;
case 2:printf("feb");break;
case 3:printf("mar");break;
case 4:printf("apr");break;
case 5:printf("may");break;
case 6:printf("jun");break;
case 7:printf("jly");break;
case 8:printf("aug");break;
case 9:printf("sep");break;
case 10:printf("oct");break;
case 11:printf("nov");break;
case 12:printf("dec");break;
}
printf("\n");
}
else if(n==0)
printf("tret\n");
else if((n/13!=0)&&(n%13==0))
{
switch(n)
{
case 13:printf("tam");break;
case 26:printf("hel");break;
case 39:printf("maa");break;
case 52:printf("huh");break;
case 65:printf("tou");break;
case 78:printf("kes");break;
case 91:printf("hei");break;
case 104:printf("elo");break;
case 117:printf("syy");break;
case 130:printf("lok");break;
case 143:printf("mer");break;
case 156:printf("jou");break;
}
printf("\n");
}
else
{
int a,i,b;
a=n/13;
b=n%13;
switch(a)
{
case 1:printf("tam");break;
case 2:printf("hel");break;
case 3:printf("maa");break;
case 4:printf("huh");break;
case 5:printf("tou");break;
case 6:printf("kes");break;
case 7:printf("hei");break;
case 8:printf("elo");break;
case 9:printf("syy");break;
case 10:printf("lok");break;
case 11:printf("mer");break;
case 12:printf("jou");break;
}
printf(" ");
switch(b)
{
case 0:printf("tret");break;
case 1:printf("jan");break;
case 2:printf("feb");break;
case 3:printf("mar");break;
case 4:printf("apr");break;
case 5:printf("may");break;
case 6:printf("jun");break;
case 7:printf("jly");break;
case 8:printf("aug");break;
case 9:printf("sep");break;
case 10:printf("oct");break;
case 11:printf("nov");break;
case 12:printf("dec");break;
}
printf("\n");
}
}