Int to Roman

2024-03-10 12:18
文章标签 int roman

本文主要是介绍Int to Roman,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阿拉伯数字转罗马数字(1~3999)

思路:

直接从个位数开始转起,分别用10,100,1000,10000取余数,不同的余数采用不同的解决办法,最后返回字符串

代码

class Solution {
public:string intToRoman(int num)
{int d = 10;int n = num;string rslt("");while (n > 0){//给10取余数int single = n % 10;switch (single){case 0:break;case 4:rslt += "IV" ; break;case 5:rslt += "V" ; break;    case 1: case 2:case 3:{int tmp = single;while (tmp > 0){rslt += "I";--tmp;}break;      }case 6:case 7: case 8:{int tmp = single;rslt += "V";while (tmp > 5){rslt += "I";--tmp;}break;}case 9:rslt += "IX"; break;}//减去n = n - single;if (n == 0)return rslt;//给100取余数int decade = n % 100;switch (decade){case 40:rslt = "XL"+rslt; break;case 50:rslt = "L" + rslt; break;case 0:break;case 10: case 20:case 30:{int tmp = decade;while (tmp >= 10){rslt = "X" + rslt;tmp -= 10;}break;}case 60:case 70: case 80:{int tmp = decade;string tmpRslt = "L";while (tmp > 50){tmpRslt += "X";tmp -= 10;}rslt = tmpRslt + rslt;break;}case 90:{rslt = "XC" + rslt;break;}}//减去n = n - decade;if (n == 0)return rslt;//给1000取余数int hunderd = n % 1000;switch (hunderd){case 0:break;case 400:rslt = "CD" + rslt; break;case 500:rslt = "D" +rslt; break;case 100: case 200:case 300:{int tmp = hunderd;while (tmp >= 100){rslt = "C" + rslt;tmp -= 100;}break;}case 600:case 700: case 800:{int tmp = hunderd;string tmpRslt = "D";while (tmp > 500){tmpRslt += "C";tmp-=100;}rslt = tmpRslt + rslt;break;}case 900: {rslt = "CM" + rslt;break;}}//减去n = n - hunderd;if (n == 0)return rslt;//给10000取余数int thousand = n % 10000;switch (thousand){case 1000:rslt = "M" + rslt; break;case 2000:rslt = "MM" + rslt; break;case 3000:rslt = "MMM" + rslt; break;}n = n - thousand;}return rslt;}
};

这篇关于Int to Roman的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/794215

相关文章

【C语言】---- 基本数据类型(char、int、float)

1 基本数据类型 C语言中的基本数据类型包括整型、浮点型和字符型,每种类型都有不同的存储大小和表示范围。以下是它们的常见表示形式和特点: 1.1 字符型 char类型用于表示单个字符,通常用于表示文本数据。char类型也被用来存储字符,但也可以用来存储较小的整数。在C语言中,char类型的大小一般为1字节(8位)。char类型可以是有符号的或无符号的,这取决于编译器和平台的实现。 1.2

如何简便的将List<Integer>转换成int[]?

使用Java 8的流(Streams)  ArrayList<Integer> list = new ArrayList<>();int[] intArray = list.stream().mapToInt(Integer::intValue).toArray();  若是maven项目可使用Apache Commons Lang库 <dependency> <groupId>

Syntax error on token int, VariableDeclaratorId expected after this token

Syntax error on token "int", VariableDeclaratorId expected after this token,看图,   <item name=" " type="id"/>; 这个的name没有,看图 删掉这行就行了,R.java就不会报错了!!!!!!!!!!!

MySQL数据类型 int(M)中M含义

int(M)我们先来拆分,int是代表整型数据那么中间的M应该是代表多少位了,后来查mysql手册也得知了我的理解是正确的,下面我来举例说明。 MySQL 数据类型中的 integer types 有点奇怪。你可能会见到诸如:int(3)、int(4)、int(8) 之类的 int 数据类型。刚接触 MySQL 的时候,我还以为 int(3) 占用的存储空间比 int(4) 要小, int(4)

LeetCode - 12. Integer to Roman

12. Integer to Roman  Problem's Link  ---------------------------------------------------------------------------- Mean:  将一个int型的整数转化为罗马数字. analyse: 没什么好说的,直接维基百科. Time complexity: O(

int数组和String字符串如何相互转化?

使用Java 8的Stream API 例如 int[] nums={1,2,3}  转化为 “123” String str = Arrays.stream(nums)// 将int转换为String .mapToObj(String::valueOf)// 使用分隔符连接 若需要,则Collectors.joining(",").collect(Collectors.joining());

golang string转int,int转string

这个写业务代码的时候非常常用。 1、常用提出来 string转成int:int, err := strconv.Atoi(string)string转成int64:int64, err := strconv.ParseInt(string, 10, 64)int转成string:string := strconv.Itoa(int)int64转成string:string :=

C语言 int uint16_t 踩坑记录

使用 uint16_t 存储 int的负数,有可能读出来是65535 ? 是的,如果你尝试使用 uint16_t 类型来存储一个负数 int 值,你可能会得到 65535。这是因为 uint16_t 是一个无符号的16位整数类型,它的取值范围是从 0 到 65535(即 0 到 2^16 - 1)。当将一个负数强制转换为 uint16_t 时,实际上会发生一种称为“类型提升”的过程,这个过程会将

python中如何类型 互转把string 转换成int

其实想转成什么类型 直接类型包裹就行 用数字字符串初始化int类,就可以将整数字符串(str)转换成整数(int):  int(‘1234’)  1234 相反用整数初始化str类,就可以将整数(int)转换为对应的字符串(str):  str(1234)  ‘1234’ 如果字符串是浮点数,可以用字符串初始化float类,把浮点数字符串(str)转换成浮点数(float):  fl

c++ int n1 = l1 ? l1 ->val:0;三元运算符语句解释

这行 C++ 代码 int n1 = l1 ? l1->val : 0; 使用了三元运算符(也称为条件运算符),其基本语法是: condition ? expression_if_true : expression_if_false; 代码解析 条件判断: l1 是一个指针或对象。三元运算符的条件部分是 l1,这表示如果 l1 指向有效的对象(即 l1 不为 nullptr),条件为真;