PAT甲级题解-1100. Mars Numbers (20)-字符串处理
没什么好说的,注意字符串的处理,以及当数字是13的倍数时,只需高位叫法的单词。比如26,是“hel”,而不是“hel tret”。
代码:
#include <iostream> #include <cstdio> #include <algorithm> #include <map> #include <string> #include <string.h> using namespace std; char mars1[13][20]={"tret","jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec"}; char mars2[13][20]={"","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"}; map<char*,int>maps;int main() {int n;char str[20];int decade,digit;scanf("%d",&n);getchar();for(int i=0;i<n;i++){gets(str);if('0'<=str[0]&&str[0]<='9'){int num=atoi(str);if(num/13 && num%13==0){//注意整除的情况。。。printf("%s\n",mars2[num/13]);}else if(num/13){decade=num/13;digit=num%13;printf("%s %s\n",mars2[decade],mars1[digit]);}else{printf("%s\n",mars1[num]);}}else{int len=strlen(str);//如果是一个字符串的话,加上\0顶多4位。不过要注意也要比较下十位数if(len<5){digit=-1;for(int i=0;i<13;i++){if(strcmp(str,mars1[i])==0){digit=i;break;}}if(digit==-1){for(int i=1;i<13;i++){if(strcmp(str,mars2[i])==0){decade=i;break;}}printf("%d\n",decade*13);}elseprintf("%d\n",digit);}else{char tmp[20];int i;for(i=0;i<len && str[i]!=' ';i++){tmp[i]=str[i];}tmp[i]='\0';//十位数for(int k=1;k<13;k++){if(strcmp(tmp,mars2[k])==0){decade=k;break;}}i++;int p=0;for(;i<len;i++,p++)tmp[p]=str[i];tmp[p]='\0';//个位数for(int k=0;k<13;k++){if(strcmp(tmp,mars1[k])==0){digit=k;break;}}printf("%d\n",decade*13+digit);}}}return 0; }
View Code
转载于:https://www.cnblogs.com/chenxiwenruo/p/6102581.html
PAT甲级题解-1100. Mars Numbers (20)-字符串处理相关推荐
- PAT甲级1100 Mars Numbers (20 分)题解
\quad这个题稍微有点麻烦,需要分别处理数字转火星文和火星文转数字两种情况.不过数字最高两位,处理起来分别讨论即可.程序如下: #include <iostream> using nam ...
- 【PAT甲级 火星数字】1100 Mars Numbers (20 分)Java 全部AC
题目 提交Java的时候,千万不要写第一行的包名称!!被这个bug折腾了一个小时.. 题解1:Java import java.util.ArrayList; import java.util.Lis ...
- PAT 1100. Mars Numbers (20)
People on Mars count their numbers with base 13: Zero on Earth is called "tret" on Mars. T ...
- 1100 Mars Numbers (20 分)【难度: 一般 / 知识点: 模拟】
https://pintia.cn/problem-sets/994805342720868352/problems/994805367156883456 乙级的原题.. #include<bi ...
- 1100 Mars Numbers (20分)
这类题目是C++标准模板库的使用,是重点知识. 题目描述如下: 题目大致意思与大致思路: 这道题目其实就是一道10进制与13进制之间的进制转换的题目,如果输入的是10进制,则将十进制转换为13进制,根 ...
- PAT_(STL使用)map-1100 Mars Numbers (20分)-1054 The Dominant Color (20分)-1071-1022
目录 1100 Mars Numbers (20分) 1054 The Dominant Color (20分) 1071 Speech Patterns (25分) 1022 Digital Lib ...
- pat1100. Mars Numbers (20)
1100. Mars Numbers (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue People o ...
- PAT甲级1100 Mars Numbers:[C++题解]进制位、使用stringstream类读入
文章目录 题目分析 题目分析 分析: 使用char型二维数组 names[][5] 存储这些 火星文. ac代码 #include<iostream> #include<sstrea ...
- 【PAT甲级题解记录】1148 Werewolf - Simple Version (20 分)
[PAT甲级题解记录]1148 Werewolf - Simple Version (20 分) 前言 Problem:1148 Werewolf - Simple Version (20 分) Ta ...
最新文章
- Origin对于标注点
- 适合利用计算机模拟的是,计算机模拟在数学建模中的应用
- Spring中DispacherServlet、WebApplicationContext、ServletContext的关系
- 法拉克机器人自动怎么调_在使用钢网印刷SMT贴片红胶时全自动印刷机的参数怎么调?...
- oracle 执行sql,Oracle动态执行SQL
- php declaration of,PHP 7.2中的新功能(参数类型声明)
- Process Stats:了解你的APP怎样使用内存
- 四元数和欧拉角在线转换
- top命令详解(转载)
- (转)马云又在押宝智能投顾!
- 200. 岛屿数量 leetcode
- ASP 文件下载实例
- html5 移动端上传图片插件,H5文件上传插件easyUpload.js
- 微信小程序账号注册初始化环境搭建
- win10 更新Node JS和npm
- 树的先序、中序、后序和层次遍历的C++递归实现
- 教你如何提高信用额度
- 剑网3指尖江湖开局门派选TA最好 叉叉助手伴你快意江湖
- 电源设计1【测试方法、LDO】
- 百度网盘偷偷更新,白嫖用户终于也可以下载不限速了
热门文章
- 雪花算法生成数字id_全局唯一iD的生成 雪花算法详解及其他用法
- STM32中GPIO_Mode--GPIO配置
- 3倍根号x加1分之一c语言,用C语言将一个数开根号后再取倒数的方法
- Java笔记-concurrent集合及线程池
- C++笔记-const与mutable、static_cast与reinterpret_cast
- Linux学习笔记-消息队列概念
- Java基础入门笔记-数组链表
- 收银系统服务器有什么好处,生鲜超市收银系统软件怎么选?收银系统能带来什么好处?...
- php导出csv带图片,PHP导出CSV文件:刚测试过,这个导出CSV可以
- c语言指针的地址存放,c语言 - *指针 和 地址