LEETCODE-Roman to Integer
来源:互联网 发布:socket文件传输java 编辑:程序博客网 时间:2024/06/06 04:05
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
罗马数字:
罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)
1、相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;
2、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;
3、小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9;
4、在一个数的上面画一条横线,表示这个数增值 1,000 倍,如=5,000。
用罗马数字表示数的基该方法一般是把若干个罗马数字写成一列,它表示的数等于各个数字所表示的数相加的和。但是也有例外,当符号 I、X 或 C 位于大数的后面时就作为加数;位于大数的前面就作为减数。
——百度百科
#include<iostream>#include<string>using namespace std;int romanToInt(string s) { int n = s.length(); int sum = 0; for (int i = 0; i < n; i++) { if(s[i] == 'I'){ if (i != (n - 1) && s[i + 1] != 'I') sum = sum - 1; else sum = sum + 1; } if (s[i] == 'X') { if (i != (n - 1) && s[i + 1] != 'X' && s[i + 1] != 'V' && s[i + 1] != 'I') sum = sum - 10; else sum = sum + 10; } if (s[i] == 'C') { if (i != (n - 1) && s[i + 1] != 'C' && s[i + 1] != 'L' && s[i + 1] != 'X' && s[i + 1] != 'V' && s[i + 1] != 'I') sum = sum - 100; else sum = sum + 100; } if (s[i] == 'V') sum = sum + 5; if (s[i] == 'L') sum = sum + 50; if (s[i] == 'D') sum = sum + 500; if (s[i] == 'M') sum = sum + 1000; } return sum;}int main() { string s; cin >> s; int x; x = romanToInt(s); cout << x;}
0 0
- LeetCode Roman to Integer && Integer to Roman
- 【leetcode】Roman to Integer | Integer to Roman
- Leetcode - "Roman to Integer" & "Integer to Roman"
- LeetCode:Roman to Integer,Integer to Roman
- LeetCode Integer to Roman & Roman to Integer
- leetcode - roman to integer & integer to roman
- LeetCode:Roman to Integer
- LeetCode: Integer to Roman
- LeetCode: Roman to Integer
- LeetCode Integer to Roman
- LeetCode: Integer to Roman
- LeetCode : Roman to Integer
- [Leetcode] Roman to Integer
- [Leetcode] Integer to Roman
- Leetcode: Integer to Roman
- Leetcode: Roman to Integer
- LeetCode Integer to Roman
- 【leetcode】Roman to Integer
- 魂归何处?畅谈人类制造
- 打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash
- cocos2d-x 中添加显示文字的三种方式 LabelTTF 、LabelBMFont 和 LabelAtlas
- 易忘知识整理
- CAS+Spring security实现单点登录之配置篇
- LEETCODE-Roman to Integer
- 随机点名程序.cs
- 各种排序算法的分析及java实现
- J2SE小结
- ae+C#实现图层管理控件上的图层移动功能
- 打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(一现象)
- c标签汇总
- 从网络解析数据并实现三个界面的跳转
- 找真凶