码迷,mamicode.com
首页 > 其他好文 > 详细

PAT (Advanced Level) 1100. Mars Numbers (20)

时间:2016-07-05 08:43:56      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

简单题。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std;

char a[20][6]={
    "tret","jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec"
};

char b[20][6]={
    "zzz","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"
};

int main()
{
    int n; char s[10000];
    scanf("%d",&n); getchar();
    for(int i=1;i<=n;i++)
    {
        gets(s);
        if(s[0]>=0&&s[0]<=9)
        {
            int num=0;
            for(int i=0;s[i];i++) num=num*10+s[i]-0;
            if(num<=12) printf("%s\n",a[num]);
            else if(num%13==0) printf("%s\n",b[num/13]);
            else printf("%s %s\n",b[num/13],a[num%13]);
        }
        else
        {
            int p=-1;
            for(int i=0;s[i];i++) if(s[i]== ) p=i;
            if(p==-1)
            {
                int num=0;
                for(int i=0;i<=12;i++)
                    if(strcmp(a[i],s)==0) num=i;
                for(int i=1;i<=12;i++)
                    if(strcmp(b[i],s)==0) num=13*i;
                printf("%d\n",num);
            }
            else
            {
                int num=0;
                char op[10]; int sz=0;
                for(int i=0;i<p;i++) op[sz++]=s[i]; op[sz]=0;
                for(int i=1;i<=12;i++)
                    if(strcmp(b[i],op)==0) num=13*i;
                sz=0;
                for(int i=p+1;s[i];i++) op[sz++]=s[i]; op[sz]=0;
                for(int i=0;i<=12;i++)
                    if(strcmp(a[i],op)==0) num+=i;
                printf("%d\n",num);
            }
        }
    }
    return 0;
}

 

PAT (Advanced Level) 1100. Mars Numbers (20)

标签:

原文地址:http://www.cnblogs.com/zufezzt/p/5642262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!