给定一个正整数 n ,请你把这个数字转成罗马数字。罗马数字包含七种字符:’I ‘ ,’V’ ,’X’ ,’L ‘ ,’C’ ,’D ‘ ,’M’ 分别表示 1 ,5,10,50,100,500,1000。 罗马数字记数的方法: (1)相同的数字连写,所表示的数等于这些数字相加得到的数,如, Ⅲ = 3; (2)小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如,Ⅷ = 8,Ⅻ = 12; (3)小的数字在大的数字的左边,所表示的数等于大数减小数得到的数,如,Ⅳ = 4,Ⅸ = 9 。这个规则只适用于六个情况 I 可以放到 V 和 X 左边,X 可以放到 L 和 C 左边,C 可以放到 D 和 M 的左边 数据范围:

区块链毕设网qklbishe.com为您提供问题的解答

给定一个正整数 n ,请你把这个数字转成罗马数字。罗马数字包含七种字符:’I‘ ,’V’ ,’X’ ,’L‘ ,’C’ ,’D‘ ,’M’ 分别表示 1 ,5,10,50,100,500,1000。
罗马数字记数的方法:
(1)相同的数字连写,所表示的数等于这些数字相加得到的数,如, Ⅲ = 3;
(2)小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如,Ⅷ = 8,Ⅻ = 12;
(3)小的数字在大的数字的左边,所表示的数等于大数减小数得到的数,如,Ⅳ = 4,Ⅸ = 9 。这个规则只适用于六个情况 I 可以放到 V 和 X 左边,X 可以放到 L 和 C 左边,C 可以放到 D 和 M 的左边
数据范围: 给定一个正整数 n ,请你把这个数字转成罗马数字。罗马数字包含七种字符:'I ' ,'V' ,'X' ,'L ' ,'C' ,'D ' ,'M' 分别表示 1 ,5,10,50,100,500,1000。    罗马数字记数的方法:      (1)相同的数字连写,所表示的数等于这些数字相加得到的数,如, Ⅲ = 3;      (2)小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如,Ⅷ = 8,Ⅻ = 12;      (3)小的数字在大的数字的左边,所表示的数等于大数减小数得到的数,如,Ⅳ = 4,Ⅸ = 9 。这个规则只适用于六个情况 I 可以放到 V 和 X 左边,X 可以放到 L 和 C 左边,C 可以放到 D 和 M 的左边            数据范围:

# -*- coding: utf-8 -*-   # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param n int整型 # @return string字符串 # class Solution:     """     题目:         https://www.nowcoder.com/practice/7649cde9711f42da81209819b790a640?tpId=196&tqId=40451&rp=1&ru=/exam/oj&qru=/exam/oj&sourceUrl=%2Fexam%2Foj%3Fpage%3D8%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196&difficulty=undefined&judgeStatus=undefined&tags=&title=     参考:         大神:牛客849220173号     算法:         1. 建立哈希表,键:数字,值:数字对应的罗马数字,总共有13种关键数字,使用nums存储这13种数字,按照从大到小顺讯         2. 遍历nums:             若n == num,刚好解析完成;             否则,若n > num,进行整除和取余操作,累加结果     复杂度:         时间复杂度:O(1)         空间复杂度:O(1)     """      def ArabicToRoman(self, n):         # write code here         hashMap = {1000: "M", 900: "CM", 500: "D", 400: "CD", 100: "C", 90: "XC", 50: "L", 40: "XL", 10: "X", 9: "IX",                    5: "V", 4: "IV", 1: "I", }         nums = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]          res = ""         for num in nums:             if n == num:                 res += hashMap[n]                 break             elif n > num:                 count = n / num                 res += hashMap[num] * count                 n %= num          return res   if __name__ == "__main__":     sol = Solution()      # n = 5      # n = 6      # n = 3049      n = 3999      res = sol.ArabicToRoman(n)      print res 

51:57

以上就是关于问题给定一个正整数 n ,请你把这个数字转成罗马数字。罗马数字包含七种字符:’I ‘ ,’V’ ,’X’ ,’L ‘ ,’C’ ,’D ‘ ,’M’ 分别表示 1 ,5,10,50,100,500,1000。 罗马数字记数的方法: (1)相同的数字连写,所表示的数等于这些数字相加得到的数,如, Ⅲ = 3; (2)小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如,Ⅷ = 8,Ⅻ = 12; (3)小的数字在大的数字的左边,所表示的数等于大数减小数得到的数,如,Ⅳ = 4,Ⅸ = 9 。这个规则只适用于六个情况 I 可以放到 V 和 X 左边,X 可以放到 L 和 C 左边,C 可以放到 D 和 M 的左边
数据范围:的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给定一个正整数 n ,请你把这个数字转成罗马数字。罗马数字包含七种字符:’I ‘ ,’V’ ,’X’ ,’L ‘ ,’C’ ,’D ‘ ,’M’ 分别表示 1 ,5,10,50,100,500,1000。 罗马数字记数的方法: (1)相同的数字连写,所表示的数等于这些数字相加得到的数,如, Ⅲ = 3; (2)小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如,Ⅷ = 8,Ⅻ = 12; (3)小的数字在大的数字的左边,所表示的数等于大数减小数得到的数,如,Ⅳ = 4,Ⅸ = 9 。这个规则只适用于六个情况 I 可以放到 V 和 X 左边,X 可以放到 L 和 C 左边,C 可以放到 D 和 M 的左边 数据范围: