给定一个正整数 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 的左边
数据范围:
# -*- 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链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
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 的左边
数据范围:
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
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 的左边
数据范围:
进群点我
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 的左边
数据范围:
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 的左边 数据范围: