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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

罗马数字转阿拉伯数字两种实现

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

記數方法

古羅馬數字基本符號

基本字符

相應的阿拉伯數字表示為

I

V

X

L

C

D

M

1

5

10

50

100

500

1000

  • 相同的數字連寫,所表示的數等于這些數字相加得到的數,如:Ⅲ=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、XLV-45、XLIX(IL)-49、L-50、LI-51、LV-55、LX-60、LXV-65、LXXX-80、XC-90、XCIII-93、XCV-95、XCVIII-98、XCIX(IC)-99

    百位數舉例

    C-100、CC-200、CCC-300、CD-400、CDXC(XD)-490、CDXCV-495、CDXCIX-499、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(MDCCCIC)-1899、MCM-1900、MCMLXXVI-1976、MCMLXXXIV-1984、MCMXC(MXM)-1990、MM-2000、MMMCMXCIX(MMMIM)-3999

    實現舉例

    1.正序加減法

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h>//羅馬數字轉阿拉伯數字 char stdname[] = {'I','V','X','L','C','D','M'}; int stdval[] = {1,5,10,50,100,500,1000};//根據阿拉數字獲取stdname的下標 int L(char c){for(int i=0;i<sizeof(stdname);i++){if(c == stdname[i])return i;}printf("L() function input error!\n");return -1; }//根據當前位置后面的字符判斷加減本值 int wich_dir(char *ptr,int len){char c = *(char *)ptr;char *p = (char *)ptr;while(len-->0){if(L(*p) > L(c)){return 0;}p++;}return 1; }//主函數 int main(int argc,char ** argv){if(argc != 2){printf("參數必填\n");return 1;}int len = strlen(argv[1]);int result = 0 ;int i = 0;int dir = 1;char * start = (char *)argv[1];do{dir = wich_dir((char *)start,len); int index = L(*(char *)start);if(dir) result += stdval[index];else result -= stdval[index];start++;}while(--len>0);printf("result=%d\n",result);return 0; }

    2.倒敘加減法

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h>//羅馬數字轉阿拉伯數字 char stdname[] = {'I','V','X','L','C','D','M'}; int stdval[] = {1,5,10,50,100,500,1000};//根據阿拉數字獲取stdname的下標 int L(char c){for(int i=0;i<sizeof(stdname);i++){if(c == stdname[i])return i;}printf("L() function input error!\n");return -1; }//根據當前位置后面的字符判斷加減本值 int wich_dir(char *origin ,char *ptr){char c = *(char *)ptr;char *p = (char *)ptr;while(origin >= p){if(L(*p) > L(c)){return 0;}p++;}return 1; }//主函數 int main(int argc,char ** argv){if(argc != 2){printf("參數必填\n");return 1;}char * deduct_ptr = argv[1];int len = strlen(argv[1]);deduct_ptr += len - 1;int result = 0 ;int i = 0;int dir = 1;char * start = (char *)argv[1]+len-1;do{dir = wich_dir(start,(char *)deduct_ptr); if(dir) result += stdval[L(*(char *)deduct_ptr)];else result -= stdval[L(*(char *)deduct_ptr)];deduct_ptr--;}while(--len>0);printf("result=%d\n",result);return 0; }

    總結

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

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

    主站蜘蛛池模板: 国产精品电影院 | 日本黄色激情视频 | 欧美一级做a爰片免费视频 成人激情在线观看 | 中文在线免费看视频 | 国产视频在线观看免费 | 99精品免费观看 | 国产精品无人区 | 无码精品一区二区三区在线播放 | 天堂男人在线 | 精品人妻一区二区三区日产乱码卜 | 一级片视频在线观看 | 免费的理伦片在线播放 | 五月激情综合 | 国产视频分类 | 欧美日韩亚洲另类 | 东北女人av | 8x8ⅹ8成人免费视频观看 | 久99精品| 黄色录象片 | 日韩av免费播放 | 美女隐私免费观看 | 美女露出让男生揉的视频 | 欧美性xxxxx 亚洲特黄一级片 | 国产精品15p| 男人操女人网站 | 综合久久久久久久久久久 | 粗大的内捧猛烈进出在线视频 | 日韩精品久久 | 日韩久久网 | 中文字幕精品久久久久人妻红杏ⅰ | 成人小视频在线播放 | 日本五十路在线 | www三级免费| 国产欧美一区二区三区鸳鸯浴 | 午夜aaa | 亚洲av无码精品色午夜 | 香港三级日本三级韩国三级 | jizz中国女人 | 中文字幕制服丝袜 | av在线资源站 | 欧美日韩精品区别 | 欧美精品大片 | 艳情五月 | 久久成人综合 | 亚洲欲色 | 日韩精品极品视频 | 阿v天堂2017 欧美小视频在线观看 | 精品乱人伦一区二区三区 | 久久久精品人妻一区二区三区色秀 | 亚洲激情a | 黄色aa毛片 | 亚洲一区二区图片 | 欧美男女性生活视频 | 三级av毛片 | a√天堂网 | 亚洲欧美www| 国产成a人亚洲精品 | 国产一区2 | 欧美日韩在线视频 | 国产精品久久久久影院色老大 | 国产女人18水真多18精品一级做 | 久草视频免费 | 青青草视频播放器 | 天天躁日日摸久久久精品 | 狠狠躁夜夜躁人爽 | 色www.| 国内av片 | 一区二区免费av | 网红日批视频 | 亚洲av无码国产在丝袜线观看 | 久久精品99国产精 | 制服下的诱惑暮生 | 日本成人免费网站 | 欧洲金发美女大战黑人 | 亚洲色图欧美 | 欧美成人国产精品高潮 | 黑人一级女人全片 | 青娱乐毛片 | 国产乱码精品一品二品 | 日韩欧洲亚洲AV无码精品 | 国产精品天美传媒入口 | 国产一区二区三区在线视频 | 四虎视频国产精品免费 | 亚洲一区二区三区加勒比 | 寡妇高潮一级视频免费看 | 91丨九色丨丰满 | 青青草五月天 | 国产麻豆免费观看 | 精品熟妇一区二区三区 | 青青伊人av| 男人添女人下部高潮视频 | 人人干在线视频 | 人妖干美女| 日韩特黄毛片 | 日韩精品一卡 | 光棍影院一区二区 | 超碰日日夜夜 | 亚洲精品乱码久久久久久写真 | 自拍偷拍另类 |