首页 > 其他分享 >leetcode12.整数转罗马数字

leetcode12.整数转罗马数字

时间:2025-01-04 11:29:02浏览次数:3  
标签:va 存储 val int 罗马数字 整数 intToRoman leetcode12 pair

Python3:

class Solution:
    def intToRoman(self, num: int) -> str:
        # 初始化字典
        val={
            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"
        }
        # 存储结果
        ans=""
        # 遍历字典
        for key,value in val.items():
            while key<=num:
                ans+=value
                num-=key
        # 返回结果
        return ans

C++:

// 初始化pair结构
const pair<int,string> val[]={
    {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"}
};
class Solution {
public:
    string intToRoman(int num) {
        // 存储结果
        string ans="";
        // 遍历pair结构的val
        for(const auto va :val){
            // 从大到小存储输出
            while(va.first<=num){
                ans+=va.second;
                num-=va.first;
            }
        }
        // 返回结果
        return ans;
    }
};

标签:va,存储,val,int,罗马数字,整数,intToRoman,leetcode12,pair
From: https://blog.csdn.net/qq_61319288/article/details/144912702

相关文章

  • Day47--有符号整数.md
    Day47--有符号整数.md有符号整数是什么?为什么10000000对应的是-128?有符号整数的概念在计算机中,整数可以分为有符号整数和无符号整数。有符号整数用于表示正数、负数和零,而无符号整数只能表示零和正数。对于有符号整数,最常见的表示方法是使用二进制补码(two'scomplement)。在......
  • 2025-01-01:优质数对的总数Ⅰ。用go语言,给定两个整数数组 nums1 和 nums2,分别长度为 n
    2025-01-01:优质数对的总数Ⅰ。用go语言,给定两个整数数组nums1和nums2,分别长度为n和m,以及一个正整数k。如果nums1数组中的元素nums1[i]能被nums2数组中的元素nums2[j]乘以k除尽,则称(i,j)为一个优质数对(其中0<=i<=n-1,0<=j<=m-1)。请计算并返回所......
  • 华为OD机试真题---求字符串中所有整数的最小和
    一、题目描述输入字符串s,输出s中包含所有整数的最小和。说明字符串s,只包含a-zA-Z±;合法的整数包括1)正整数一个或者多个0-9组成,如0230021022)负整数负号-开头,数字部分由一个或者多个0-9组成,如-0-012-23-00023二、输入描述包含数字的字符串三、输出描述所......
  • C++:正整数A+B
    正整数A+B题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱......
  • 【练习】完美数列:给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M
    题目给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M<=m*p,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(<=105)是输入的正整数的个数,p(<=109)是给......
  • 2024-12-30:所有球里面不同颜色的数目。用go语言,给定一个整数 limit 和一个大小为 n x
    2024-12-30:所有球里面不同颜色的数目。用go语言,给定一个整数limit和一个大小为nx2的二维数组queries,其中包含若干操作。我们有limit+1个球,它们的编号为[0,limit],每个球的编号都是独特的。一开始,所有的球都是无色的。每个操作的形式为[x,y],表示将球x染成......
  • LeetCode-字符串转换整数(008)
    一.题目描述请你来实现一个 myAtoi(strings) 函数,使其能将字符串转换成一个32位有符号整数。函数 myAtoi(strings) 的算法如下:空格:读入字符串并丢弃无用的前导空格("")符号:检查下一个字符(假设还未到字符末尾)为 '-' 还是 '+'。如果两者都不存在,则假定结果为正。......
  • LeetCode-整数反转(007)
    一.题目描述给你一个32位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围 [−231, 231 −1] ,就返回0。假设环境不允许存储64位整数(有符号或无符号)。二.示例 示例1:输入:x=123输出:321示例2:输入:x=-......
  • 整数提升规则
    今天写代码遇到一个类似这样的问题,0xfd!=0xfd我脑袋懵了,这两个值不是相等的吗?让我们来看看怎么个事uint8_tbinHeader[10]={0x01,0xfd};uint8_tch=0x02;if(binHeader[1]==(~ch)){printf("相等");}else{printf("不相等");}看似很正......
  • 使用js写一个方法将一个正整数分解质因数,输出为数组
    你可以使用以下的JavaScript函数来将一个正整数分解为质因数,并将结果输出为数组:functionprimeFactors(n){letfactors=[];letdivisor=2;//判断输入是否为正整数if(n<=0||!Number.isInteger(n)){thrownewError('Inputmustbeapo......