当前位置: 首页 > news >正文

python算法例10 整数转换为罗马数字

1. 问题描述

给定一个整数,将其转换为罗马数字,要求返回结果的取值范围为1~3999。

2. 问题示例

4→Ⅳ,12→Ⅻ,21→XⅪ,99→XCIX。

3. 代码实现

def int_to_roman(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_num = ''i = 0while  num > 0:for _ in range(num // val[i]):roman_num += syb[i]num -= val[i]i += 1return roman_num
print(int_to_roman(4))  # 输出 IV
print(int_to_roman(12))  # 输出 XII
print(int_to_roman(21))  # 输出 XXI
print(int_to_roman(99))  # 输出 XCIX

def int_to_roman(num):roman_dict = {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'}roman_num = ''for value, symbol in roman_dict.items():while num >= value:roman_num += symbolnum -= valuereturn roman_num
print(int_to_roman(4))  # 输出 IV
print(int_to_roman(12))  # 输出 XII
print(int_to_roman(21))  # 输出 XXI
print(int_to_roman(99))  # 输出 XCIX

http://www.lryc.cn/news/235952.html

相关文章:

  • springboot引入第三方jar包放到项目目录中,添加web.xml
  • 大数据研发工程师课前环境搭建
  • Qt图形视图框架:QGraphicsItem详解
  • defer和async
  • 数电实验-----实现74LS139芯片扩展为3-8译码器以及应用(Quartus II )
  • 洋葱架构、三层架构及两者区别
  • JavaEE进阶学习:Spring 的创建和使用
  • 音视频项目—基于FFmpeg和SDL的音视频播放器解析(十四)
  • Tomcat无法映射到activiti-app导致activiti无法启动页面
  • c语言常见的面试问题
  • image图片之间的间隙消除
  • asp.net心理健康管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目
  • CnosDB有主复制演进历程
  • 【前沿学习】美国零信任架构发展现状与趋势研究
  • Toolformer论文阅读笔记(简略版)
  • Pytorch torch.dot、torch.mv、torch.mm、torch.norm的用法详解
  • Jave 定时任务:使用Timer类执行定时任务为何会发生任务阻塞?如何解决?
  • Visual Studio Code配置c/c++环境
  • 漏洞利用工具的编写
  • ChatGPT之父被OpenAI解雇
  • linux中利用fork复制进程,printf隐藏的缓冲区,写时拷贝技术,进程的逻辑地址与物理地址
  • java游戏制作-拼图游戏
  • 使用sklearn报AttributeError: ‘NoneType‘ object has no attribute ‘split‘
  • C++学习 --map
  • 基于Qt QList和QMap容器类示例
  • Flask学习一:概述
  • LeetCode:689. 三个无重叠子数组的最大和(dp C++)
  • Leetcode—206.反转链表【简单】
  • Linux - 内存 - 预留内存占用分析
  • Java学习之路 —— Java高级