. 罗马数字
【问题描述】
古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。
之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念!
罗马数字的表示主要依赖以下几个基本符号:

I –> 1
V –> 5
X –> 10
L –> 50
C –> 100
D –> 500
M –> 1000

这里,我们只介绍一下1000以内的数字的表示法。
单个符号重复多少次,就表示多少倍。最多重复3次。
比如:CCC表示300 XX表示20,但150并不用LLL表示,这个规则仅适用于I X C M。

如果相邻级别的大单位在右,小单位在左,表示大单位中扣除小单位。
比如:IX表示9 IV表示4 XL表示40 
49 = XLIX

更多的示例参见下表,你找到规律了吗? 
I = 1 
II = 2
III = 3
IV = 4
V = 5
VI = 6
VII = 7
VIII = 8
IX = 9 
X = 10
XI = 11
XII = 12
XIII = 13
XIV = 14
XV = 15
XVI = 16
XVII = 17
XVIII = 18
XIX = 19
XX = 20
XXI = 21
XXII = 22
XXIX = 29
XXX = 30
XXXIV = 34
XXXV = 35
XXXIX = 39
XL = 40
L = 50
LI = 51
LV = 55
LX = 60
LXV = 65
LXXX = 80
XC = 90
XCIII = 93
XCV = 95
XCVIII = 98
XCIX = 99
C = 100
CC = 200
CCC = 300
CD = 400
D = 500
DC = 600
DCC = 700
DCCC = 800
CM = 900
CMXCIX = 999

本题目的要求是:请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。

输入格式是:第一行是整数n,表示接下来有n个罗马数字(n<100)。
以后每行一个罗马数字。罗马数字大小不超过999。
要求程序输出n行,就是罗马数字对应的十进制数据。

例如,用户输入:
3
LXXX
XCIII
DCCII

则程序应该输出:
80
93

702

C++代码如下:

#include<iostream>
#include<string>
using namespace std;int toi(string x)
{if(x == "I")return 1;if(x == "V")return 5;if(x == "X")return 10;if(x == "L")return 50;if(x == "C")return 100;if(x == "D")return 500;if(x == "M")return 1000;
}int main()
{   int n;cin>>n;while(n--){string num="";int answer=0;cin>>num;answer=toi(num.substr(num.length()-1,1));for(int i=num.length()-2; i>=0; i--){if(toi(num.substr(i,1)) >= toi(num.substr(i+1,1)))// now > lastanswer+=toi(num.substr(i,1));elseanswer-=toi(num.substr(i,1));}cout<<answer<<endl;}return 0;
}

蓝桥杯 -罗马数字问题相关推荐

  1. 蓝桥杯——罗马数字转换器

    古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了.之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原 ...

  2. 蓝桥杯-——罗马数字的暴力破解

    罗马数字的表示主要依赖以下几个基本符号: I 1 V 5 X 10 L 50 C 100 D 500 M 1000 这里,我们只介绍一下1000以内的数字的表示法. 单个符号重复多少次,就表示多少倍. ...

  3. 【蓝桥杯】Python字符串处理和应用

    前言: 本文侧重于通过实战训练来提高字符串的处理能力,可以先行学习一下我之前的文章:蓝桥杯Python快速入门(4) ,学习完基础知识再来刷题才会事半功倍! 字符串处理 # 字符串切片 str1=&q ...

  4. 十二届蓝桥杯省赛B组C++解析(填空题部分)

    十二届蓝桥杯省赛B组C++解析(填空题部分) 目录 十二届蓝桥杯省赛B组C++解析(填空题部分) A:空间 B:卡片 C:直线 D:货物摆放 E:路径 A:空间 该题是一道计算机基础原理题,这里需要了 ...

  5. 关于python的比赛_【蓝桥杯】——python集团的比赛技巧,Python,组

    [蓝桥杯]-- Python组比赛技巧 蓝桥杯是大学生IT学科赛事,由工业和信息化部人才交流中心主办,所以对于大学生还说还是非常值得去参加的,2020年第十一届蓝桥杯新增了大学Python组,不分组别 ...

  6. 【蓝桥杯】【入门题】【算法提高VIP】1481:剪刀石头布

    题目 1481:剪刀石头布 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 编写程序实现&q ...

  7. 【蓝桥杯】【入门题】【算法提高VIP】1480:模拟计算器

    题目 1480:模拟计算器 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 使用Switch ...

  8. 题目 1477:【蓝桥杯】【入门题】字符串输入输出函数

    题目 1477:字符串输入输出函数 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 编写函数 ...

  9. 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交

    题目 1471:矩形面积交 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 平面上有两个矩形 ...

  10. 题目 1093:【蓝桥杯】【入门题】字符逆序

    题目 1093:字符逆序 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 64MB 1. 题目描述 将一个字符串str的 ...

最新文章

  1. 输入两个数,计算它们的最大公约数和最小公倍数
  2. ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
  3. js中apply和Math.max()函数的问题?
  4. Java初学者推荐学习书籍free下载
  5. 风讯dotNETCMS源码分析—数据存取篇
  6. 源码编译打包_Atlas 2.1.0 实践(1)—— 编译Atlas
  7. manjaro设置java_manjaro 深度学习编程环境搭建
  8. 探索:GHOST分区之后如何找回原分区
  9. 电脑自建服务器tomcat,怎么配置搭建tomcat服务器
  10. Java基础知识强化54:经典排序之插入排序(InsertSort)
  11. 恶搞代码——vbs进程
  12. 超好用的卸载工具——geek
  13. 微信公众号python_微信公共平台框架-python(支持多账号)
  14. [生存志] 第136节 相如辞赋神来之笔
  15. ebx 与 ebp的作用 ---- 总线接口部件
  16. 原创 OC底层 - runtime 结构体+位域
  17. 地图定位偏移以及坐标系转换(一)-国内部分常见的地理坐标系
  18. Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezon‘
  19. 大数据学习(十三)hive正则表达式
  20. 51Nod_1925 进制转换【进制+枚举】

热门文章

  1. 一种去除U盘写保护的可行方法(dd 命令解决)
  2. 浅议 Web 表单设计
  3. 如何下载微信公众号音频,不需要插件,不安装软件
  4. 关于交流半波与全波整流输出的电压(或电流)有效值和平均值的讨论
  5. openmodelica安装
  6. 【资源帖】深度学习视觉领域常用数据集汇总
  7. 什么是项目沟通管理?
  8. 【数据分析师3级】 数据挖掘方法论
  9. opencv cv2 python RGB BGR 颜色表 配色
  10. python实现组合优化