蓝桥杯 -罗马数字问题
. 罗马数字
【问题描述】
古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。
之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现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;
}
蓝桥杯 -罗马数字问题相关推荐
- 蓝桥杯——罗马数字转换器
古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了.之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原 ...
- 蓝桥杯-——罗马数字的暴力破解
罗马数字的表示主要依赖以下几个基本符号: I 1 V 5 X 10 L 50 C 100 D 500 M 1000 这里,我们只介绍一下1000以内的数字的表示法. 单个符号重复多少次,就表示多少倍. ...
- 【蓝桥杯】Python字符串处理和应用
前言: 本文侧重于通过实战训练来提高字符串的处理能力,可以先行学习一下我之前的文章:蓝桥杯Python快速入门(4) ,学习完基础知识再来刷题才会事半功倍! 字符串处理 # 字符串切片 str1=&q ...
- 十二届蓝桥杯省赛B组C++解析(填空题部分)
十二届蓝桥杯省赛B组C++解析(填空题部分) 目录 十二届蓝桥杯省赛B组C++解析(填空题部分) A:空间 B:卡片 C:直线 D:货物摆放 E:路径 A:空间 该题是一道计算机基础原理题,这里需要了 ...
- 关于python的比赛_【蓝桥杯】——python集团的比赛技巧,Python,组
[蓝桥杯]-- Python组比赛技巧 蓝桥杯是大学生IT学科赛事,由工业和信息化部人才交流中心主办,所以对于大学生还说还是非常值得去参加的,2020年第十一届蓝桥杯新增了大学Python组,不分组别 ...
- 【蓝桥杯】【入门题】【算法提高VIP】1481:剪刀石头布
题目 1481:剪刀石头布 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 编写程序实现&q ...
- 【蓝桥杯】【入门题】【算法提高VIP】1480:模拟计算器
题目 1480:模拟计算器 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 使用Switch ...
- 题目 1477:【蓝桥杯】【入门题】字符串输入输出函数
题目 1477:字符串输入输出函数 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 编写函数 ...
- 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交
题目 1471:矩形面积交 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 平面上有两个矩形 ...
- 题目 1093:【蓝桥杯】【入门题】字符逆序
题目 1093:字符逆序 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 64MB 1. 题目描述 将一个字符串str的 ...
最新文章
- 输入两个数,计算它们的最大公约数和最小公倍数
- ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
- js中apply和Math.max()函数的问题?
- Java初学者推荐学习书籍free下载
- 风讯dotNETCMS源码分析—数据存取篇
- 源码编译打包_Atlas 2.1.0 实践(1)—— 编译Atlas
- manjaro设置java_manjaro 深度学习编程环境搭建
- 探索:GHOST分区之后如何找回原分区
- 电脑自建服务器tomcat,怎么配置搭建tomcat服务器
- Java基础知识强化54:经典排序之插入排序(InsertSort)
- 恶搞代码——vbs进程
- 超好用的卸载工具——geek
- 微信公众号python_微信公共平台框架-python(支持多账号)
- [生存志] 第136节 相如辞赋神来之笔
- ebx 与 ebp的作用 ---- 总线接口部件
- 原创 OC底层 - runtime 结构体+位域
- 地图定位偏移以及坐标系转换(一)-国内部分常见的地理坐标系
- Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezon‘
- 大数据学习(十三)hive正则表达式
- 51Nod_1925 进制转换【进制+枚举】