淘宝店铺网站策划,微信app下载安装旧版本,装饰网站建设运营,o2o商业模式题目#xff1a; 阿拉伯数字转化为罗马数字 解题思路#xff1a; 设置两个vector#xff0c;一个放罗马数字#xff0c;一个放罗马数字所对应的阿拉伯数字#xff1b; 从给定数字num的最高位开始#xff0c;逐位转化#xff1b;n-2; 如果该位数字是1-3#xff0c;则在结…题目 阿拉伯数字转化为罗马数字   解题思路 设置两个vector一个放罗马数字一个放罗马数字所对应的阿拉伯数字 从给定数字num的最高位开始逐位转化n-2; 如果该位数字是1-3则在结果字符串上加上该位数字大小个roman[n] 如果该位数字是4则在结果字符串上加上roman[n]  roman[n-1] 如果改为数字是5-8则在结果字符串上加上roman[n-1]  若干个roman[n] 如果该位数字是9则在结果字符串上加上roman[n]roman[n-2];   代码  class Solution {
public:string intToRoman(int num) {string res  ;vectorchar roman  { M, D, C, L, X, V, I };vectorint value  { 1000, 500, 100, 50, 10, 5, 1 };for (int n  0; n  7; n  2) {int x  num / value[n];if (x  1  x  3) {for (int i  0; i  x; i) {res  roman[n];}}else if (x  4) {res  res  roman[n]  roman[n - 1];}else if (x  5  x  8) {res  roman[n - 1];for (int i  5; i  x; i) {res  roman[n];}}else if (x  9) {res  res  roman[n]  roman[n - 2];}num % value[n];}return res;}
};   转载于:https://www.cnblogs.com/yxlsblog/p/10637741.html