国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[LeetCode] Integer to Roman 解題報告

2019-11-08 01:42:20
字體:
來源:轉載
供稿:網友

[題目] Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999.

[中文翻譯] 給定一個整數,將其轉換為羅馬數字。 輸入保證在1到3999的范圍內。

[解題思路] 一開始錯了幾次,然后發現羅馬數字的規則還是挺復雜的。 原本是打算找一下隨著數值增加,對應的羅馬數字變化規律的,似乎不太靠譜。 好在輸入保證在1到3999范圍內,對于每一個進制位上,羅馬數字的展開還是有規則的,所以照著規則寫就好了。 規則見代碼就行,這里就不詳細敘述了。

[C++代碼]

class Solution {public: string intToRoman(int num) { string res; switch (num / 1000) { case 1: res = "M"; break; case 2: res = "MM"; break; case 3: res = "MMM"; break; default: break; } num = num % 1000; switch (num / 100) { case 1: res += "C"; break; case 2: res += "CC"; break; case 3: res += "CCC"; break; case 4: res += "CD"; break; case 5: res += "D"; break; case 6: res += "DC"; break; case 7: res += "DCC"; break; case 8: res += "DCCC"; break; case 9: res += "CM"; break; default: break; } num = num % 100; switch (num / 10) { case 1: res += "X"; break; case 2: res += "XX"; break; case 3: res += "XXX"; break; case 4: res += "XL"; break; case 5: res += "L"; break; case 6: res += "LX"; break; case 7: res += "LXX"; break; case 8: res += "LXXX"; break; case 9: res += "XC"; break; default: break; } num = num % 10; switch (num) { case 1: res += "I"; break; case 2: res += "II"; break; case 3: res += "III"; break; case 4: res += "IV"; break; case 5: res += "V"; break; case 6: res += "VI"; break; case 7: res += "VII"; break; case 8: res += "VIII"; break; case 9: res += "IX"; break; default: break; } return res; }};
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 楚雄市| 额尔古纳市| 刚察县| 海门市| 林州市| 沅陵县| 社旗县| 达孜县| 乐陵市| 沐川县| 日喀则市| 唐河县| 奉化市| 鹿邑县| 绿春县| 石柱| 铁岭市| 内江市| 隆化县| 盐源县| 吉水县| 邵东县| 安图县| 高州市| 娄烦县| 新蔡县| 寿光市| 老河口市| 绍兴县| 信宜市| 郴州市| 大同市| 兴海县| 汝城县| 甘南县| 微山县| 佛教| 建湖县| 北流市| 织金县| 广元市|