淘宝店铺网站策划,微信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