✌2024/4/3—力扣—整数转罗马数字


代码实现:

方法一:硬编码数字

const char *thousands[] = {"", "M", "MM", "MMM"};
const char *hundreds[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
const char *tens[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
const char *ones[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};char* intToRoman(int num) {char *roman = malloc(sizeof(char) * 16);roman[0] = '\0';strcpy(roman + strlen(roman), thousands[num / 1000]);strcpy(roman + strlen(roman), hundreds[num % 1000 / 100]);strcpy(roman + strlen(roman), tens[num % 100 / 10]);strcpy(roman + strlen(roman), ones[num % 10]);return roman;
}

方法二:模拟

const int values[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
const char *symbols[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};char* intToRoman(int num) {char *roman = malloc(sizeof(char) * 16);roman[0] = '\0';for (int i = 0; i < 13; i++) {while (num >= values[i]) {num -= values[i];strcpy(roman + strlen(roman), symbols[i]);}if (num == 0) {break;}}return roman;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/799851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32无刷电机全套开发资料(源码、原理图、PCB工程及说明文档)

目录 1、原理图、PCB、BOOM表 2、设计描述 2.1 前言 2.2 设计电路规范 3、代码 4、资料清单 资料下载地址&#xff1a;STM32无刷电机全套开发资料(源码、原理图、PCB工程及说明文档) 1、原理图、PCB、BOOM表 2、设计描述 2.1 前言 经过一个星期的画PCB&#xff0c;今…

C++模仿qq界面

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//设置窗口的大小this->resize(645,497);//设置窗口名字this->setWindowTitle("QQ");//设置窗口图标this->setWindowIcon(QIcon("C:\\zhouzhouMyfile\\qt_proj…

ChatGPT助力学术成就:打造完美论文技巧

ChatGPT无限次数:点击直达 ChatGPT助力学术成就&#xff1a;打造完美论文技巧 在当今信息爆炸的时代&#xff0c;学术研究对于每个领域的进步和发展至关重要。而在学术研究中&#xff0c;撰写高质量的论文是展示研究成果和贡献的重要方式之一。然而&#xff0c;许多学者在论文…

如何使用Excel搭建一套低值易耗品管理系统

低值易耗品是企业日常运营中不可或缺的一部分&#xff0c;虽然其单个价值不高&#xff0c;但因其使用频繁且数量众多&#xff0c;对其的管理同样重要。利用Excel搭建一套低值易耗品管理系统&#xff0c;不仅成本低廉&#xff0c;而且易于操作和维护。本文将指导您如何使用Excel…

【编程】Boost::geometry Polygon 常用应用代码记录(C++)

简介 本文的代码部分都比较简单容易 Boost Geometry 是 Boost C 库集合的一部分&#xff0c;定义了用于解决几何问题的概念、工具和算法。这个库比较常用&#xff0c;很多现成的函数都很实用且简单&#xff0c;本文记录一些常用的函数和操作&#xff0c;重复的功能以后还会用到…

python实例1.1:编写一个程序来计算并打印用户输入的数字列表的平均值(详解及其知识点拓展)

目录 一、主程序详细讲解 二、strip()和float()函数详细用法 三、try...except详细用法 四、列表用法及append使用方法详解 append() 方法 语法&#xff1a; 实例&#xff1a; 一、主程序详细讲解 下面是一个简单的Python程序&#xff0c;它可以接收用户输入的数字列表…

Rust---模式(Pattern)匹配

目录 模式是什么它用来做什么模式匹配和赋值为什么会有模式匹配模式匹配用在什么地方match 表达式if let表达式while let表达式for 循环let 语句函数参数不可驳模式匹配和可驳模式匹配模式是什么 在Rust中,模式(Pattern)是一种用于匹配和解构数据的语法结构。模式匹配中常用…

Mac运行不畅?一招教你轻松清理缓存,恢复流畅体验!

在日常使用Mac电脑时&#xff0c;面对系统运行速度下降或频繁卡顿的问题&#xff0c;不仅影响工作效率&#xff0c;用户体验也随之大打折扣。探究 Mac 运行变慢的背后原因&#xff0c;涵盖了一系列潜在因素&#xff0c;诸如存储空间接近极限、系统资源紧张、启动加载项过多等。…

LeetCode刷题--- 让字符串成为回文串的最少插入次数

让字符串成为回文串的最少插入次数 题目链接&#xff1a;让字符串成为回文串的最少插入次数 题目 给你一个字符串 s &#xff0c;每一次操作你都可以在字符串的任意位置插入任意字符。 请你返回让 s 成为回文串的 最少操作次数 。 「回文串」是正读和反读都相同的字符串。…

EN 14246:2006 吊顶石膏板检测

石膏板是建筑领域使用的一种主要产品&#xff0c;具有重量轻&#xff0c;强度较高&#xff0c;厚度较薄&#xff0c;易加工&#xff0c;绝热隔音和防火等性能&#xff0c;是目前市场上较为流行的轻型板材之一&#xff1b;主要用于墙板&#xff0c;吊顶&#xff0c;检修口等领域…

Java设计模式详解:抽象工厂模式

Java设计模式详解&#xff1a;抽象工厂模式 文章目录 Java设计模式详解&#xff1a;抽象工厂模式前言一、原理二、案例实战&#xff1a;打造一款汽车生产流水线三、使用场景四、与工厂模式的区别总结 前言 对于初学者来说&#xff0c;设计模式可能显得有些抽象和复杂&#xff…

1.4 掌握Scala运算符

大家好&#xff0c;今天我们将一起探讨Scala中的运算符。在Scala中&#xff0c;运算符实际上就是方法的一种特殊形式。这意味着我们可以像调用方法一样使用运算符。 首先&#xff0c;让我们了解一下Scala中的运算符种类。Scala支持多种类型的运算符&#xff0c;包括算术运算符…

IT廉连看——SpringBoot——SpringBoot快速入门

IT廉连看——SpringBoot——SpringBoot快速入门 1、idea创建工程 &#xff08;1&#xff09;普通Maven工程创建 工程名spring-boot-test 2、添加依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/PO…

windows7安装高版本Node

项目需要安装高版本得node&#xff0c;windows7最高支持到v13&#xff0c;需要手动下载zip安装包进行解压&#xff0c;配置环境变量&#xff0c;添加路径到path&#xff0c;如果安装了nvm需要卸载&#xff0c;否则配置得高版本node可能不生效&#xff0c;成功后如下&#xff1a…

LeetCode 24.两两交换链表中的节点

给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a;[2,1,4…

Mysql语句(更新)

查询框架 执行顺序select 查询列表 7from 表 1[join type] join 表2 2 on 连接条件 3where 筛选条件 4group by 分组条件 5having 分组后筛选 6or…

机器学习(Machine Learning)知识点

机器学习Machine Learning知识点 机器学习1. 常用的数据处理的库有哪些2. 常用的机器学习的库有哪些3. 过拟合问题的特点4. 过拟合问题的解决方法&#xff1a;5. 说一下广度优先遍历和深度优先遍历&#xff1f;6. 什么是线性回归?7. 机器学习中&#xff0c;有哪些损失函数&…

Java常用API_正则表达式_字符串的替换和截取方法——小练习

我将通过一个练习题来展示这两个方法 练习题&#xff1a; 有一段字符串&#xff1a;小张qwertyuiop123小李asdfghjkl456小王 要求1&#xff1a;把字符串中三个姓名之间的字母替换成vs 要求2&#xff1a;把字符串中的三个姓名切割出来 编写代码&#xff1a; public class Tes…

js,uniapp,vue,小写数字转化为大写

应用场景&#xff1a; 把1、2、3&#xff0c;转为一、二、三 方法&#xff1a; retBigSrt(num) {const changeNum [零, 一, 二, 三, 四, 五, 六, 七, 八, 九]const unit [, 十, 百]num parseInt(num)const getWan (temp) > {const strArr temp.toString().split().re…

day12 函数基础(三)

一.迭代器(了解) 迭代:更新换代 迭代特点:每一次迭代得到的值,就是下一个迭代的初始值 可迭代对象: 字符串 列表 元组 字典 集合 ...... 迭代器的语法格式: ```python 变量名 = iter(可迭代对象) 变量名 = 可迭代对象._iter_ # 迭代取值格式 迭代器名._next_() next(迭代器…