[LeetCode] 012. Integer to Roman (Medium) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql)Github: https://github.com/illuz/leetcode

012.Integer_to_Roman (Medium)链接:

题目:https://oj.leetcode.com/problems/integer-to-roman/代码(github):https://github.com/illuz/leetcode

题意:

把十进制转为罗马数。

分析:

模拟即可。

“罗马数字的基本符号有I(表示十进制数1),V(表示5),,X(表示10),L(表示50),C(表示100),D(表示500),M(表示1000)。” – 罗马数制(百度百科)

代码:

C++:

class Solution {private:int val[13] = {1000, 900, 500, 400,100, 90, 50, 40,10, 9, 5, 4,1};string syb[13] = {"M", "CM", "D", "CD","C", "XC", "L", "XL","X", "IX", "V", "IV","I"};public:string intToRoman(int num) {string roman;int i = 0, k;while (num > 0) {k = num / val[i];while (k–) {roman += syb[i];num -= val[i];}i++;}return roman;}};

Java:

public class Solution {private int[] val = {1000, 900, 500, 400,100, 90, 50, 40,10, 9, 5, 4,1};private String[] syb = new String[] {"M", "CM", "D", "CD","C", "XC", "L", "XL","X", "IX", "V", "IV","I"};public String intToRoman(int num) {StringBuilder roman = new StringBuilder();int i = 0, k;while (num > 0) {k = num / val[i];while (k– > 0) {roman.append(syb[i]);num -= val[i];}i++;}return roman.toString();}}

Python:

class Solution:# @return a stringdef intToRoman(self, num):val = [1000, 900, 500, 400,100, 90, 50, 40,10, 9, 5, 4,1]syb = ["M", "CM", "D", "CD","C", "XC", "L", "XL","X", "IX", "V", "IV","I"]roman = ''i = 0while num > 0:for _ in range(num // val[i]):roman += syb[i]num -= val[i]i += 1return roman

她是应该难过的往回走,还是蹲下来哭泣?

[LeetCode] 012. Integer to Roman (Medium) (C++/Java/Python)

相关文章:

你感兴趣的文章:

标签云: