vs2010可以做动态网站吗推广关键词排名查询
参考《one-day-one-leetcode》
在上篇博客中我们讨论了将1~3999以内的数字转化为罗马数字,着重讨论了非7个标准的罗马数字的一些表达,例如4,6,3等等的表达,这篇博客我们着讨论一下将罗马数字转化为整型数字的情况!
其实我们在进行转化的时候主要注意一下4,40,400,等数字的表达即可!
代码:
#include <iostream>
#include <string>
#include <vector>using namespace std;int toNum(char ch);
int romanToInt(string s){int ret = 0;int i = 0;while ( i < s.length()){if (i + 1 < s.length() && toNum(s[i]) < toNum(s[i + 1])){ret += toNum(s[i + 1]) - toNum(s[i]);i++;}else{ret += toNum(s[i]);}i++;}return ret;
}
int toNum(char ch){int num = 0;switch (ch){case 'I':num = 1; break;case 'V':num = 5; break;case 'X':num = 10; break;case 'L':num = 50; break;case 'C':num = 100; break;case 'D':num = 500; break;case 'M':num = 1000; break;}return num;
}
int main(){string s = "MMMDCCLXXII";int con = romanToInt(s);cout << con << endl;return 0;
}
运行结果: