`
momoliu
  • 浏览: 25375 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

罗马数字和阿拉伯数字的转化

 
阅读更多

转自 http://www.cnblogs.com/dosxp/archive/2008/08/13/1266781.html

但其中存在一些细节问题进行了修改,代码如下:

#include <string>
#include <iostream>

using namespace std;

int mp[100];

int val[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};

string r[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
void init()
{
    mp['I']=1;
    mp['V']=5;
    mp['X']=10;
    mp['L']=50;
    mp['C']=100;
    mp['D']=500;
    mp['M']=1000;
    return;
}
int r2n(char *str)
{
    int t,re,pre;
    re=pre=mp[str[0]];
    for(t=1;str[t]!='\0';t++)
    {
        if(mp[str[t]]<=pre)
            re+=mp[str[t]];
        else
            re=re-2*pre+mp[str[t]];
        pre=str[t];
    }

    return re;
}
string n2r(int k)
{
    int i=0;
    string re="";
    while(k>0)
    {
        while(k>=val[i])
        {
            re+=r[i];
            k-=val[i];
        }
        i++;
    }
    return re;
}
int main(){
    char *s = "IV";
    init();
    cout<< r2n(s) << endl;;
    int m = 100;
    cout << n2r(m) << endl;
    cout << n2r(6) << endl;
} 

 

 

分享到:
评论

相关推荐

    罗马数字与阿拉伯数字转换器

    本项目“罗马数字与阿拉伯数字转换器”提供了一种高效的方法,实现1至9999范围内的罗马数字和阿拉伯数字之间的相互转换。这一功能在编程挑战、算法解析以及历史数据处理等方面具有实用价值。以下是关于罗马数字和...

    matlab开发-罗马数字阿拉伯数字转换

    在MATLAB编程环境中,开发罗马数字与阿拉伯数字之间的转换功能是一项常见的练习,它涉及字符串处理和数值计算。本文将深入探讨这一主题,并基于提供的文件名`num2rom.fig`、`num2rom.m`和`license.txt`进行解析。 ...

    实现罗马与阿拉伯数字互转(上机笔试题)

    本题目的目标是利用C++语言在控制台上实现4000以内罗马数字和阿拉伯数字之间的转换。下面将详细阐述实现这个功能所需的知识点。 1. **罗马数字系统**: 罗马数字是一种古老的计数系统,主要由七个不同的符号组成:...

    linux 中编写 罗马数字与阿拉伯数字互转

    通过研究这些文件,我们可以深入理解LEX如何处理这种特定的文本解析任务,以及如何实现罗马数字和阿拉伯数字的转换逻辑。 总的来说,这个项目提供了学习LEX、正则表达式以及数字转换算法的机会。通过这样的实践,...

    026 阿拉伯数字转换为罗马数字 C语言

    026 阿拉伯数字转换为罗马数字 C语言

    Python简单实现阿拉伯数字和罗马数字的互相转换功能示例

    在编程语言Python中实现阿拉伯数字与罗马数字之间的互相转换是一个涉及基础算法和数据结构操作的实用功能。阿拉伯数字即我们通常使用的0-9的计数系统,而罗马数字则是源于古罗马的一种非位值制的记数系统,它由七个...

    罗马数字转换为大写汉字

    本文将详细介绍一个名为“CnumToHan”的类,它专门用于将罗马数字或阿拉伯数字转换为大写汉字。 首先,让我们理解罗马数字的基本概念。罗马数字是一种古老的数字表示方式,由七个不同的符号(I, V, X, L, C, D, M)...

    BAT批处理脚本-格式转换-阿拉伯数字转为罗马数字.cmd.zip

    格式转换-阿拉伯数字转为罗马数字.cmd.zip”是一个很好的学习资源,它展示了如何利用批处理脚本解决实际问题,特别是对于初学者,可以借此了解批处理脚本的基本结构和命令,以及如何将数学逻辑转化为编程实践。...

    阿拉伯数字转换成罗马数字的方法

    阿拉伯数字转换成罗马数字的方法阿拉伯数字转换成罗马数字的方法阿拉伯数字转换成罗马数字的方法

    Java实现的求解经典罗马数字和阿拉伯数字相互转换问题示例

    "Java实现的求解经典罗马数字和阿拉伯数字相互转换问题示例" 本文主要介绍了Java实现的求解经典罗马数字和阿拉伯数字相互转换问题,涉及Java输入输出及字符串、数组的遍历与转换相关操作技巧。 首先,让我们了解...

    Python实现将罗马数字转换成普通阿拉伯数字的方法

    ### Python 实现将罗马数字转换成普通阿拉伯数字的方法 ...通过上述内容的学习,读者不仅能够掌握如何使用Python实现罗马数字到阿拉伯数字的转换,还能够了解到更多有关Python编程的相关知识和技术点。

    阿拉伯转换成罗马数字

    采用语法制导翻译模式框架将阿拉伯转罗马数字,做《编译原理》(龙书)后第2章习题,不知道对不??MSVC6编译

    将用罗马数字表示的金额转化为中文大写表示

    1. **罗马数字到阿拉伯数字**:首先,我们需要编写一个函数,将输入的罗马数字字符串转换为其对应的阿拉伯数字。这可以通过创建一个映射表,存储每个罗马数字对应阿拉伯数字的值,然后遍历字符串并应用加减法则来...

    php实现阿拉伯数字和罗马数字相互转换的方法

    这两个函数提供了一种方便的方法,在PHP中进行阿拉伯数字和罗马数字之间的转换。无论是需要在网页上显示具有古典风格的编号,还是处理具有罗马数字表示的特定数据,这些函数都能满足需求。在实际应用中,可以灵活地...

    基础电子中的电子标志罗马数字与阿拉伯数字的对照

    理解罗马数字与阿拉伯数字的转换对于电子工程师和爱好者来说,不仅能帮助他们正确解读和识别元器件,还能在需要时进行计算和比较。例如,在修复或升级电路时,确定某个组件的准确规格就显得尤为关键。 总的来说,...

    罗马数字/阿拉伯数字转换:这些 GUI 将罗马数字转换为整数数字,反之亦然。-matlab开发

    在 MATLAB 开发环境中,我们可以创建图形用户界面(GUI,Graphical User Interface)来实现罗马数字与整数数字之间的转换。这种转换在各种计算和编程任务中都有应用,尤其是在处理历史数据或进行文化相关的计算时。...

    BAT批处理脚本-格式转换-阿拉伯与罗马数字互转程序.cmd.zip

    这个压缩包“BAT批处理脚本-格式转换-阿拉伯与罗马数字互转程序.cmd.zip”正是提供了一个这样的工具,它能够实现阿拉伯数字和罗马数字之间的相互转换。 首先,我们来看一下批处理脚本的基本概念。批处理脚本是基于...

    Python将阿拉伯数字转换为罗马数字的方法

    通过以上介绍,我们可以看到,将阿拉伯数字转换为罗马数字的过程涉及到了多个Python的基础知识点,包括字符串操作和流程控制等。这种转换方法不仅能够帮助我们更好地理解这些知识点的应用场景,还能在实际开发中派上...

Global site tag (gtag.js) - Google Analytics