欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【leetcode】Integer to Roman

发布时间:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【leetcode】Integer to Roman 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--

    Question : 

    Given an integer, convert it to a roman numeral.

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

    Anwser 1 :    

class Solution { public:string intToRoman(int num) {// Start typing your C/C++ solution below// DO NOT write int main() function string res;string symbol[]={"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 i = 0;while(num != 0){if(num >= value[i]){ // minus largest numbernum -= value[i];res += symbol[i];} else {i++; }}return res;} };

    Anwser 2 :   

每日一道理
古人云:“海纳百川,有容乃大。”人世间,不可能没有矛盾和争吵,我们要以磊落的胸怀和宽容的微笑去面对它 。哈伯德也曾说过:“宽恕和受宽恕的难以言喻的快乐,是连神明都会为之羡慕的极大乐事。”让我们从宽容中享受快乐,从谅解中体会幸福吧!
class Solution { public:string intToRoman(int num) {// Start typing your C/C++ solution below// DO NOT write int main() function char symbol[7] = {'I', 'V', 'X', 'L', 'C', 'D', 'M'};string res = "";int scale = 1000;for (int i = 6; i >= 0; i -= 2){int digit = num / scale;num2roman(digit, res, symbol + i);num %= scale;scale /= 10;}return res;}void num2roman(int num, string& res, char symbols[]){if (num == 0)return;if (num <= 3)res.append(num, symbols[0]);else if (num == 4){res.append(1, symbols[0]);res.append(1, symbols[1]);}else if (num <= 8){res.append(1, symbols[1]);res.append(num - 5, symbols[0]);}else{res.append(1, symbols[0]);res.append(1, symbols[2]);}} };

文章结束给大家分享下程序员的一些笑话语录: 一位程序员去海边游泳,由于水性不佳,游不回岸了,于是他挥着手臂,大声求.救:“F1,F1!”

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/04/21/3034383.html

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的【leetcode】Integer to Roman的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。