首页 > 代码库 > [leetcode] 12. Integer to Roman
[leetcode] 12. Integer to Roman
关于罗马数字:
I: 1
V: 5
X: 10
L: 50
C: 100
D: 500
M: 1000
字母可以重复,但不超过三次,当需要超过三次时,用与下一位的组合表示:
I: 1, II: 2, III: 3, IV: 4
C: 100, CC: 200, CCC: 300, CD: 400
提取每一位digit,然后convert to 罗马数字
public class Solution { private static char[][] chars = {{‘I‘, ‘V‘}, {‘X‘, ‘L‘}, {‘C‘, ‘D‘}, {‘M‘, ‘O‘}}; public String intToRoman(int num) { int copy_num = num; int count = 0; StringBuilder result = new StringBuilder(); while (copy_num != 0) { int x = copy_num / 10; int digit = copy_num - x * 10; switch (digit) { case 3: result.append(chars[count][0]); case 2: result.append(chars[count][0]); case 1: result.append(chars[count][0]); case 0: break; case 4: result.append(chars[count][1]); result.append(chars[count][0]); break; case 8: result.append(chars[count][0]); case 7: result.append(chars[count][0]); case 6: result.append(chars[count][0]); case 5: result.append(chars[count][1]); break; case 9: result.append(chars[count + 1][0]); result.append(chars[count][0]); break; } count++; copy_num = x; } result = result.reverse(); return result.toString(); } }
[leetcode] 12. Integer to Roman
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。