PAT (Advanced Level) 1100. Mars Numbers (20)
2016-07-05 08:07
351 查看
简单题。
#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; }
相关文章推荐
- memcached 适用的场景
- 【译文】数据科学的统计学入门
- PAT (Advanced Level) 1099. Build A Binary Search Tree (30)
- 【译文】深度神经网络入门手册
- PAT (Advanced Level) 1098. Insertion or Heap Sort (25)
- 【译文】如何利用机器学习和分布式计算来对用户事件进行分类
- <Android 基础(十四)> selector
- 马上要参加数据工程师面试?花一分钟看看这个速读书籍列表!
- [Specical] Design Pattern - Behavioral Patterns - Iterator Pattern
- 线程安全与效率的问题
- <Android 基础(十四)> selector
- 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁
- 我的手机管家(10)病毒扫描 拷贝病毒数据库
- 【译文】城市相似性的可视化:美国和冰岛的相似之处
- 手动输入四位数 进行简单的加密运算
- Android基础--Android app应用多语言切换功能实现
- WPF中的binding(十二)- 多路Binding
- 前景检测算法(三)--帧差法
- 【投稿】Machine Learning With Spark Note 2:构建简单的推荐系统
- 前景检测算法(二)--codebook和平均背景法