【1100】Mars Numbers (20 分)

简介: 【1100】Mars Numbers (20 分)【1100】Mars Numbers (20 分)
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string>
#include<algorithm>  
#include<map>
#include<vector>
#include<queue> 
using namespace std;
key:分了三种情况考虑,打表,注意给的数在[0,169)区间内
字符串到数字的映射用map<string,int>strToNum
数字到字符串的映射用数组NumToStr[]即可
//[0,12]的火星文
string unitDigit[13]={"tret","jan","feb","mar","apr","may","jun",
  "jly","aug","sep","oct","nov","dec"};  
//12的[0,12]倍的火星文
string tenDigit[13]={"tret","tam","hel","maa","huh","tou","kes",
  "hei","elo","syy","lok","mer","jou"};
 string numToStr[170];   //数字--》火星文
 map<string,int> strToNum;  //火星文--》数字
 void init(){
   for(int i=0;i<13;i++){
     numToStr[i]=unitDigit[i];   //个位为[0,12] ,十位为0
     strToNum[unitDigit[i]]=i;
     numToStr[i*13]=tenDigit[i];  //十位为[0.12],个位为0
     strToNum[tenDigit[i]]=i*13;
   }
   for(int i=1;i<13;i++){  //十位
     for(int j=1;j<13;j++){  //个位
       string str=tenDigit[ i ] + " " + unitDigit[ j ];  //火星文
       numToStr[i*13+j]=str;  //数字--》火星文
       strToNum[str]=i*13+j;  //火星文--》数字
     }
   }
 }
int main(){   
  init();   //打表
  int T;
  scanf("%d%*c",&T);   //查询个数,注意这里清除后面的换行符
  while(T--){
    string str;
    getline(cin,str);  //查询的数,注意同一以字符串的形式scanf
    if(str[0] >= '0' && str[0] <='9') {  //如果是数字
      int num=0;  //数字的字符串 转换成数字
      for(int i=0;i< str.length();i++){
        num=num*10+(str[i]-'0');
      }
      cout << numToStr[num] <<endl;  //直接查表
    }else{  //如果是火星文
      cout << strToNum[str] <<endl;// 直接查表
    }
  }
  system("pause");
    return 0;   
}
相关文章
|
7月前
|
API
GEE案例分析——利用sentinel-3数据计算空气污染指数(Air Pollution Index,简称API)
GEE案例分析——利用sentinel-3数据计算空气污染指数(Air Pollution Index,简称API)
212 0
|
人工智能 C++
ML之FE:Vintage曲线/Vintage分析的简介、计算逻辑、案例应用之详细攻略
ML之FE:Vintage曲线/Vintage分析的简介、计算逻辑、案例应用之详细攻略
ML之FE:Vintage曲线/Vintage分析的简介、计算逻辑、案例应用之详细攻略
|
2月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
60 5
|
2月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
68 0
|
4月前
G6VP 与 GraphScope部署问题之在G6VP中选择子图并创建数据集如何解决
G6VP 与 GraphScope部署问题之在G6VP中选择子图并创建数据集如何解决
|
7月前
|
数据可视化 Python
python中Copula在多元联合分布建模可视化2实例合集|附数据代码
python中Copula在多元联合分布建模可视化2实例合集|附数据代码
|
数据挖掘
白话Elasticsearch35-深入聚合数据分析之案例实战更多metrics用法:统计每种颜色电视最大最小价格
白话Elasticsearch35-深入聚合数据分析之案例实战更多metrics用法:统计每种颜色电视最大最小价格
94 0
|
数据挖掘
白话Elasticsearch37-深入聚合数据分析之案例实战Date Histogram Aggregation:统计每月电视销量
白话Elasticsearch37-深入聚合数据分析之案例实战Date Histogram Aggregation:统计每月电视销量
97 0
|
Python 机器学习/深度学习 数据处理
Mars学习笔记(一)
对阿里开源的、基于Python的大规模计算框架Mars的学习笔记系列。
920 0
Mars学习笔记(一)
|
SQL 分布式计算 算法
十亿条数据需要每天计算怎么办?Spark快速入门
前段时间公司规划了一个新的项目,我成了这个项目的负责人。在做技术选型时,有一个需求阻碍了前进的步伐。大概有十亿条数据,数据总量在六百G左右,这些海量的数据需要每天根据一定的逻辑计算得到几千万的值。当数据量达到这种程度时,Java应用已经无法支撑了,于是在技术选型时选中了大数据计算框架--Spark。