博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]12.Integer to Roman
阅读量:6328 次
发布时间:2019-06-22

本文共 1274 字,大约阅读时间需要 4 分钟。

【题目】

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

【分析】

I = 1;

V = 5;
X = 10;
L = 50;
C = 100;
D = 500;
M = 1000;

还有一些特殊的:每两个阶段的之间有一个减法的表示,比如900=CM, C写在M前面表示M-C。

求商得到每个罗马文字的个数(如:3999  / 1000 = 3 结果有3个M) 

【代码】

/**********************************   日期:2015-01-21*   作者:SJF0115*   题目: 12.Integer to Roman*   网址:https://oj.leetcode.com/problems/integer-to-roman/*   结果:AC*   来源:LeetCode*   博客:**********************************/#include 
using namespace std;class Solution {public: string intToRoman(int num) { string result; string roman[] = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; int value[] = {1000,900,500,400,100,90,50,40,10,9,5,4,1}; int count; // 转换为罗马数字 for(int i = 0;i < 13;++i){ count = num / value[i]; result += toRoman(count,roman[i]); num = num % value[i]; }//if return result; }private: string toRoman(int num,string str){ string result; for(int i = 0;i < num;++i){ result += str; }//for return result; }};int main(){ Solution solution; int num = 3999; string result = solution.intToRoman(num); // 输出 cout<
<
你可能感兴趣的文章
进行短视频app开发工作时,可以加入它来保护青少年 ...
查看>>
Rxjs 学习推荐
查看>>
25G DAC无源高速线缆和25G光模块之间的区别
查看>>
乐乐茶完成近2亿元Pre-A轮融资,祥峰投资领投
查看>>
clickhouse修改时区
查看>>
CSS_定位
查看>>
第二十四章:页面导航(六)
查看>>
百度、长沙加码自动驾驶,湖南阿波罗智行科技公司成立 ...
查看>>
Java面试笔试题大汇总一(最全+详细答案)
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
[Server] 服务器配置SSH登录邮件通知
查看>>
程序员需要学数学吗?
查看>>
排序算法
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
如何用纯 CSS 创作一只愤怒小鸟中的黑炮
查看>>
胡玮炜卸任摩拜CEO,或将成为美团大裁员的开端
查看>>
Java多线程用法解析
查看>>
sed & awk LastState 中的疑问
查看>>
Linux执行mount挂载覆盖文件的还原
查看>>
科技奥运再进一步,北京冬奥组委携手阿里云启动“云上转播”
查看>>