日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

罗马数字与阿拉伯数字互转

發布時間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 罗马数字与阿拉伯数字互转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源于 LeetCode

Roman to Integer

描述: Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
(給定一個羅馬數字,將其轉換為整數。輸入保證在1到3999的范圍內。)

Integer to Roman

描述:Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.(給定一個整數,將其轉換為羅馬數字。
輸入保證在1到3999的范圍內。)

羅馬數字介紹

羅馬數字是歐洲在阿拉伯數字(實際上是印度數字)傳入之前使用的一種數碼,現在應用較少。它的產生晚于中國甲骨文中的數碼,更晚于埃及人的十進位數字。但是,它的產生標志著一種古代文明的進步。

記數方法

基本數字對應的阿拉伯數字為
I1
V5
X10
L50
C100
D500
M1000
  • 相同的數字連寫、所表示的數等于這些數字相加得到的數、如:Ⅲ=3;
  • 小的數字在大的數字的右邊、所表示的數等于這些數字相加得到的數、 如:Ⅷ=8、Ⅻ=12;
  • 小的數字(限于 I、X 和 C)在大的數字的左邊、所表示的數等于大數減小數得到的數、如:Ⅳ=4、Ⅸ=9;
  • 正常使用時、連寫的數字重復不得超過三次;
  • 在一個數的上面畫一條橫線、表示這個數擴大 1000 倍。
  • 組數規則

    有兩條須注意掌握:

  • 基本數字 Ⅰ、X 、C 中的任何一個、自身連用構成數目、或者放在大數的右邊連用構成數目、都不能超過三個;放在大數的左邊只能用一個;
  • 不能把基本數字 V 、L 、D 中的任何一個作為小數放在大數的左邊采用相減的方法構成數目;放在大數的右邊采用相加的方式構成數目、只能使用一個;
  • 對照舉例

    • 個位數舉例

      Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9

    • 十位數舉例

      Ⅹ-10、Ⅺ-11、Ⅻ-12、XIII-13、XIV-14、XV-15、XVI-16、XVII-17、XVIII-18、XIX-19、XX-20、XXI-21、XXII-22、XXIX-29、XXX-30、XXXIV-34、XXXV-35、XXXIX-39、XL-40、L-50、LI-51、LV-55、LX-60、LXV-65、LXXX-80、XC-90、XCIII-93、XCV-95、XCVIII-98、XCIX-99

    • 百位數舉例

      C-100、CC-200、CCC-300、CD-400、D-500、DC-600、DCC-700、DCCC-800、CM-900、CMXCIX-999

    • 千位數舉例

      M-1000、MC-1100、MCD-1400、MD-1500、MDC-1600、MDCLXVI-1666、MDCCCLXXXVIII-1888、MDCCCXCIX-1899、MCM-1900、MCMLXXVI-1976、MCMLXXXIV-1984、MCMXC-1990、MM-2000、MMMCMXCIX-3999

    算法分析

    • 羅馬數字轉阿拉伯數字

      class Solution {public int roman2Integer(String roman) {if (roman.length() < 1) {return 0;}// 定義一個map將映射關系存儲起來Map<Character, Integer> map = new HashMap<>();map.put('I', 1);map.put('V', 5);map.put('X', 10);map.put('L', 50);map.put('C', 100);map.put('D', 500);map.put('M', 1000);int result = 0;char[] chars = roman.toCharArray();for (int i = 0; i < chars.length; i++) {if (i < chars.length - 1) {// 兩兩比較根據規則左小右大則為減,左大右小則為加if (map.get(chars[i]) < map.get(chars[i + 1])) {result -= map.get(chars[i]);} else {result += map.get(chars[i]);}} else {// 最后一位必為加result += map.get(chars[i]);}}return result;} }

      這個是自己琢磨的,感覺不夠好,有好的算法還希望大家多多交流~~

    • 下面貼個LeetCode上的:

      public int romanToInt(String s) {int sum=0;if(s.indexOf("IV")!=-1){sum-=2;}if(s.indexOf("IX")!=-1){sum-=2;}if(s.indexOf("XL")!=-1){sum-=20;}if(s.indexOf("XC")!=-1){sum-=20;}if(s.indexOf("CD")!=-1){sum-=200;}if(s.indexOf("CM")!=-1){sum-=200;}char c[]=s.toCharArray();int count=0;for(;count<=s.length()-1;count++){if(c[count]=='M') sum+=1000;if(c[count]=='D') sum+=500;if(c[count]=='C') sum+=100;if(c[count]=='L') sum+=50;if(c[count]=='X') sum+=10;if(c[count]=='V') sum+=5;if(c[count]=='I') sum+=1;}return sum; }
    • 阿拉伯數字轉羅馬數字(參見羅馬數字C++實現)

      class Solution {public String int2Roman(int num) {// 個、十、百、千位映射到羅馬數字的映射表String[][] mapping = {{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},{"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},{"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},{"", "M", "MM", "MMM"}};return mapping[3][num / 1000 % 10] // 千位+ mapping[2][num / 100 % 10]// 百位+ mapping[1][num / 10 % 10] // 十位+ mapping[0][num % 10]; // 個位} }

    總結

    以上是生活随笔為你收集整理的罗马数字与阿拉伯数字互转的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 好吊操精品视频 | 少妇特黄a一区二区三区88av | 一个人免费在线观看视频 | 中文字幕一区二区三区乱码在线 | 青青成人网 | 香港三级在线视频 | 综合五月网 | 91香蕉国产在线观看软件 | 欧美啪啪网| 成年人视频网 | 亚洲日本中文字幕在线 | 美女在线一区 | 日韩高清在线播放 | 日本一区视频在线播放 | 精品久久久久久中文字幕人妻最新 | 国产毛片91 | 欧美日韩系列 | 欧美性猛交xxxx | 国产69xx| 操小妹影院 | 诱夫1v1高h | 射影院 | 欧美一区二区视频在线 | 无码人妻精品一区二区三区在线 | 男人添女人下部高潮全视频 | 国产精品久久久久久久av | 91成人免费版 | 日韩av一区二区在线观看 | 中文字幕被公侵犯的漂亮人妻 | 大桥未久视频在线观看 | 国产男女猛烈无遮挡免费视频动漫 | 香蕉视频黄色 | 国产精品视频一区二区在线观看 | 美女网站免费黄 | 精品视频一二三区 | 初尝人妻少妇中文字幕 | 免费激情网址 | 一级大片在线观看 | а√天堂www在线天堂小说 | 亚洲天堂性 | 欧洲精品视频在线 | 黄色三级a| 91精选视频 | 丰满少妇影院 | 欧美伦理片网站 | 真人毛片97级无遮挡精品 | 色婷婷av一区二区三区gif | 国产av一区二区三区 | 欧美综合视频 | 亚洲国产欧美一区二区三区深喉 | www.一区二区.com| 熟妇人妻中文字幕无码老熟妇 | 草色噜噜噜av在线观看香蕉 | 国产片在线播放 | 做a爰小视频| 日韩精品人妻中文字幕 | 久色视频| 亚洲一级理论片 | 欧美极品在线观看 | 成人xxxxx | 男女激情网 | 精品乱码一区内射人妻无码 | 男女黄床上色视频 | 蜜桃视频在线入口www | 成人毛片100免费观看 | 激情亚洲色图 | 天天干狠狠爱 | 日本福利在线观看 | 日韩成人无码影院 | 老外一级黄色片 | 免费在线观看污 | 国产高清精品在线 | 97成人在线视频 | 乱码av| av国产免费 | 久草视频在线免费 | 凹凸精品熟女在线观看 | 91av久久 | 亚欧美色图 | 久久久精品91 | 国产成人精品免费看视频 | 色哟哟视频网站 | 91久久精品夜夜躁日日躁欧美 | 麻豆国产一区二区 | 成年人av网站 | 大陆熟妇丰满多毛xxxⅹ | 男女一起插插插 | 国产精品一区二区三区免费视频 | 99久久久无码国产精品性 | 最近国语视频在线观看免费播放 | 在线播放黄色网址 | 91尤物视频在线观看 | 国产又粗又长又黄的视频 | 香蕉在线网站 | 老司机在线免费视频 | www.久久精品视频 | 欧美黄色免费看 | 免费在线黄色片 | 亚洲天堂男人网 |