题目源自于leetcode。

题目:将一个int型的阿拉伯数字转换为string型的罗马数字。

方法:首先要知道罗马数字的表示法。

个位、十位、百位、千位都是特点的字幕作为权值,每一个位的10个数字的表示方法也类似,都会在5有另一个中间的字母。

           

M=1000

   

= 500

 
                     

I

1

 

XXXII

32

 

LXIII

63

 

XCIV

94

II

2

 

XXXIII

33

 

LXIV

64

 

XCV

95

III

3

 

XXXIV

34

 

LXV

65

 

XCVI

96

IV

4

 

XXXV

35

 

LXVI

66

 

XCVII

97

V

5

 

XXXVI

36

 

LXVII

67

 

XCVIII

98

VI

6

 

XXXVII

37

 

LXVIII

68

 

XCIX

99

VII

7

 

XXXVIII

38

 

LXIX

69

 

C

100

VIII

8

 

XXXIX

39

 

LXX

70

     

IX

9

 

XL

40

 

LXXI

71

 

EX.

 

X

10

 

XLI

41

 

LXXII

72

 

DI

501

XI

11

 

XLII

42

 

LXXIII

73

 

DL

550

XII

12

 

XLIII

43

 

LXXIV

74

 

DXXX

530

XIII

13

 

XLIV

44

 

LXXV

75

 

DCCVII

707

XIV

14

 

XLV

45

 

LXXVI

76

 

DCCCXC

890

XV

15

 

XLVI

46

 

LXXVII

77

 

MD

1500

XVI

16

 

XLVII

47

 

LXXVIII

78

 

MDCCC

1800

XVII

17

 

XLVIII

48

 

LXXIX

79

 

CM

900

XVIII

18

 

XLIX

49

 

LXXX

80

     

XIX

19

 

L

50

 

LXXXI

81

     

XX

20

 

LI

51

 

LXXXII

82

     

XXI

21

 

LII

52

 

LXXXIII

83

     

XXII

22

 

LIII

53

 

LXXXIV

84

     

XXIII

23

 

LIV

54

 

LXXXV

85

     

XXIV

24

 

LV

55

 

LXXXVI

86

     

XXV

25

 

LVI

56

 

LXXXVII

87

     

XXVI

26

 

LVII

57

 

LXXXVIII

88

     

XXVII

27

 

LVIII

58

 

LXXXIX

89

     

XXVIII

28

 

LIX

59

 

XC

90

     

XXIX

29

 

LX

60

 

XCI

91

     

XXX

30

 

LXI

61

 

XCII

92

     

XXXI

31

 

LXII

62

 

XCIII

93

     

既然各个位的表示方法固定,并且位与位之间并不影响,所以用数组将他们罗列出来。转换是从低位到高位。

string cost[][10] = {{"","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",""}};

代码:

class Solution {
public:string intToRoman(int num) {string cost[][10] = {{"","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",""}};int n;int idx = 0;string roman = "", tmp = "";while(num!=0){n = num%10;num /= 10;tmp = cost[idx][n];roman = tmp + roman;idx++;}return roman;}
};

注意:借助二维数组来对应不同位的不同权值字母。

将阿拉伯数字转换成罗马数字 Integer to Roman相关推荐

  1. Javascript 将阿拉伯数字转换成罗马数字

    罗马数字真的很神奇 Examples: They wrote V instead of 5 And wrote IX instead of 9 首先,了解罗马数字 阿拉伯数字 罗马数字 1 I 10 ...

  2. Java实现阿拉伯数字转换成罗马数字

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ...

  3. 银行考题,将阿拉伯数字转换成大写的汉字模式

    银行考题,将阿拉伯数字转换成大写的汉字模式 例如 123456789.01  -> 壹亿贰千叁百肆十伍万陆千柒百捌十玖元零壹分 假定:  最小到"分"  最大到 " ...

  4. 整型数字转换成罗马数字

    版权声明:本文为博主原创文章,转载请注明出处. 个人博客地址:https://yangyuanlin.club 欢迎来踩~~~~ integer to roman Given an integer, ...

  5. 将一组阿拉伯数字转换成中文大写数字

    题目大概:  将一组阿拉伯数字转换成中文大写数字  52306 ==> 伍万贰千叁百零陆 我实现了将文件中的一组数字(每行为一个数)  形如: Java代码   25364 466932300 ...

  6. java练习:金额转换,阿拉伯数字转换成中文传统形式

    需求:金额转换,阿拉伯数字转换成中文传统形式   ,例如 101000001010   转为     壹仟零壹拾亿零壹仟零壹拾圆整 最终版: import java.util.Scanner; pub ...

  7. 计蒜客挑战难题:整数转换成罗马数字

    给定一个整数num,( 1<=num<=3999),将整数转换成罗马数字. 如1,2,3,4,5对应的罗马数字分别位I,II,III,IV,V等. 格式: 第一行输入一个整数,接下来输出对 ...

  8. js将阿拉伯数字转换成中文的大写数字

    js将阿拉伯数字转换成中文的大写数字 export const numberToChinese = (num) => {var AA = new Array("零", &qu ...

  9. php大写数字转换,PHP将阿拉伯数字转换成汉字大写支持小数点

    PHP将带有小数点的一串阿拉伯数字转换成汉字大写形式,就像转换人民币大写类似.加入了小数点的处理,只要是一连串的数字,不管是否带有小数点,通过本函数都能完美转换. PHP将阿拉伯数字转换成汉字大写支持 ...

最新文章

  1. vb编程转为c语言,C语言,VB编程题
  2. Nginx静态资源优化配置之sendfile
  3. java hashcode 多少位_hash-为什么XOR通常在Java hashCode()中使用,而很少使用按位运算符?...
  4. Ubuntu学习日记--Lesson4:环境变量详解
  5. Unity的Scrollbar
  6. 如何使用 Mac 中的“信息”?
  7. redhat下载镜像官方地址
  8. ODAC安装配置与使用详解
  9. 联想电脑摄像头亮灯却无法正常显示解决
  10. 南华大学计算机学院足球队,南华大学大学生足球联赛电气首战
  11. Docker——网络
  12. 软件安装【持续更新ing】
  13. 谷歌退出中国声明全文(中英对照版)A new approach to China
  14. 每天读一点好玩心理学--酒吧
  15. ubuntu挂载硬盘是什么意思
  16. doc命令大全(经典收藏)
  17. Linux(ECS云服务器)
  18. 微信小程序开发video播放问题
  19. LeetCode最长回文串
  20. 离散变量和连续变量缺失值检验和填补,空格表示缺失值的

热门文章

  1. BOSS直聘直直4周岁生日会圆满举办
  2. which语句c语言例子,用which引导的定语从句讲解和句子举例
  3. pytorch Module中的forward使用for循环与不使用for循环的区别
  4. python射击小游戏源码_导弹发射小游戏——Python源代码
  5. 22春天津大学《国际金融学》在线作业二
  6. http://nianjian.xiaze.com/tags.php?/%E6%BD%BC%E5%85%B3%E5%B9%B4%E9%89%B4/1/13595315666/
  7. UEFI开发与调试--edk2中的基础组件
  8. 音频原始数据能量检测算法
  9. 计算机检索常用中文数据库,常用文献信息数据库检索指南
  10. 怎么精细化管理客户关系?企业微信CRM系统可以做到吗