PAT (Basic Level) Practise (中文)1044. 火星数字(20) C语言
2015-09-23 12:54
501 查看
1044. 火星数字(20)
时间限制400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
火星人是以13进制计数的:
地球人的0被火星人称为tret。
地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。
火星人将进位以后的12个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。
例如地球人的数字“29”翻译成火星文就是“hel mar”;而火星文“elo nov”对应地球数字“115”。为了方便交流,请你编写程序实现地球和火星数字之间的互译。
输入格式:
输入第一行给出一个正整数N(<100),随后N行,每行给出一个[0, 169)区间内的数字 —— 或者是地球文,或者是火星文。
输出格式:
对应输入的每一行,在一行中输出翻译后的另一种语言的数字。
输入样例:
4 29 5 elo nov tam
输出样例:
hel mar may 115 13
提交代码
#include<stdio.h> #include<string.h> typedef struct trans { char *mars; }translist; int isMarsNumber(char *A); char *earthToMars(char *A,int lenth); int marsToEarth(char *A); translist a[13]={"tret","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec" }; translist b[13]={0,"tam", "hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"}; int main() { int N,i; char string[10]; scanf("%d",&N); gets(string); for(i=0;i<N;i++) { gets(string); if(isMarsNumber(string)) { printf("%d\n",marsToEarth(string)); }else { printf("%s\n",earthToMars(string,strlen(string))); } } return 0; } int isMarsNumber(char *A) { if(A[0]>='0'&&A[0]<='9') { return 0; }else { return 1; } } char *earthToMars(char *A,int lenth) { int number=0,i; for(i=0;i<lenth;i++) { number*=10; number+=(A[i]-'0'); } A[0]=0; for(i=1;i<13;i++) { if(i==(number/13)) { strcpy(A,b[i].mars); if(number%13==0)//13的整数倍不输出个位的tret { return A; } A[3]=' '; A[4]=0; break; } } for(i=0;i<13;i++) { if(i==(number%13)) { strcat(A,a[i].mars); break; } } return A; } int marsToEarth(char *A) { int result=0,i; for(i=1;i<13;i++) { if(strstr(A,b[i].mars)!=NULL) { result+=i*13; break; } } for(i=0;i<13;i++) { if(strstr(A,a[i].mars)!=NULL) { result+=i; break; } } return result; }
相关文章推荐
- PAT (Basic Level) Practise (中文)1043. 输出PATest(20) C语言
- PAT (Basic Level) Practise (中文)1042. 字符统计(20) C语言
- PAT (Basic Level) Practise (中文)1041. 考试座位号(15) C语言
- 有关c++de笔试
- C++多线程定时器完整实现
- c++的类中typedef的作用
- c++中构造函数之前的explicit的作用
- iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例
- C++ 集合查找元素 find() find_if()
- 四种强制类型转换的总结(const_cast、static_cast、dynamic_cast、reinterpreter_cast)
- 值得推荐的C/C++框架和库
- RGB HSV HLS三种色彩模式转换(C语言实现)
- C++ 函数模板的特化(Function Template Specialization)
- SHA-256算法 C语言实现
- MD5算法 C语言实现
- 相似图片搜索原理二(phash—c++实现)
- 相似图片搜索原理一(ahash—c++实现)
- 黑马程序员----C语言学习笔记之循环结构介绍和用法举例
- 相似图片搜索原理三(颜色直方图—c++实现)
- c语言学习笔记(4)struct和union:柔性数组存储斐波那契数列以及union判断系统大小端