阿拉伯数字转化成罗马字符

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    int num;
    cin>>num;
    string result;
    int a1[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
    string a2[]={"M", "CM", "D", "CD", "C", "XC","L", "XL", "X", "IX", "V", "IV", "I"};
    int i=0;
    while(num>0)
    {
        int count=num/a1[i];
        while(count--)
            result+=a2[i];
        num=num%a1[i];
        i++;
    }
    cout<<result<<endl;
}
时间: 2024-11-02 23:36:43

阿拉伯数字转化成罗马字符的相关文章

将一个罗马数转化成对应的阿拉伯数

阿拉伯数,顾名思义 ,就是我们平时使用最多的数,比如,1,2,3,4,..... 罗马数,是数字最早的表示方式.基本的字符有:I.V.X.L.C.D.M,对应的数字 分别是:1,5,10,50,100,500,1000. 下边给出罗马数的计数规律: 1.两个相同的字符挨着写,表示相加.比如:XX转化成阿拉伯数就是20. 2.如果一个字符表示的数比左边的字符表示的数大,则转化成阿拉伯数就是这个数减去 左边的数. 比如:IX表示的阿拉伯数就是10-1 = 9. ICMI表示的阿拉伯数是:1000-(

HTML5将图片转化成字符画

HTML5将图片转化成字符画 字符画大家一定非常熟悉了,那么如何把一张现有的图片转成字符画呢?HTML5让这个可能变成了现实,通过canvas,可以很轻松实现这个功能.其实原理很简单:扫描图片相应位置的像素点,再计算出其灰度值,根据灰度值的大小,分别用字符#*+“和空格来填充.下面是源码:HTML:一个canvas元素#cv,一个字符画容器#txt . 1 <canvas id="cv">fuck ie</canvas> 2 <div id="t

结构体转化成字符数组

昨天晚上在解决通过socket发送结构体的问题的时候,知道了可以将结构体先转化成字符串的形式再发送,但今天之前一直有个疑问没有解决(为了方便描述,去掉socket部分),首先看下代码: #include <stdlib.h> #include <stdio.h> #include <string.h> typedef struct info { char name[5]; char num[10]; }INFO; int main() { INFO info; char

如何将特殊符号转化成字符编码!

有时候使用一些小图标的时候,通常情况下,都是用的雪碧图将他们放在一起,然后通过背景调用,但是很多图标都是很简单的字符图标,却往往多增加了一些请求,大小也增加了(图片肯定比字符要大):为什么就不能将这些简单的字符图标用字符编码的形式来体现呢?这样性能不是更好吗?至少是一个网站优化的方向啊!所以我说干就干,在网上找找吧!照理说我这想法应该很多人都想到了啊,但是网上却很难找到把一些常用的字符图标转化为字符编码的文章或者是例子,然道是太简单了?还是说大神都不屑于做这样的事情!好吧,这叫我们这些菜鸟怎么办

[LeetCode][12]Integer to Roman解析 int转罗马字符时间复杂度为常数的实现-Java实现

Q: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. A: 俺是真不知道啥是roman,我去查了一下合着是罗马字体,这题目意思也很简单就是说我要输入一个数字可以保证是1-3999但是你要把这个阿拉伯数字转换成罗马数字. 首先我们要清楚罗马数字怎么表示的,罗马数字表示如下: 罗 马 数字共有七个,即I(1),V(5),X(10),L

[LeetCode][13]Roman to Integer解析 罗马字符转int类型关于栈的常数实现-Java实现

Q: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. A: 以下解法和代码没有借阅以往任何资料,如果有更好的解法请在评论区留言 看到这一题我真是感叹城会玩,昨天刚刚解过一个int转罗马字母,今天又反过来解.自叹弗如.这题的该意思就是给一个罗马字符,把他转化成一个int数字,范围在1-3999之间.关于罗马数字的详细信息就不复制了,

[LeetCode] Integer to Roman 整数转化成罗马数字

Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 之前那篇文章写的是罗马数字转化成整数(http://www.cnblogs.com/grandyang/p/4120857.html), 这次变成了整数转化成罗马数字,基本算法还是一样.由于题目中限定了输入数字的范围(1 - 3999), 使得题目变得简单了不少. 基本字符 I V

( # #@ ## 在define中的应用)或( 连接两个字符串或者两个数字、强制转化成单引号、强制转化成双引号 )附加字符串强制转化成数字

1. 修改成常用的几个连接表示L与x连接. 以下来自网络:#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #x x##y表示什么?表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";怎么样,很神奇吧 再来看#@x,其实就是给x

LeetCode Roman to Integer 罗马字符转数字 解题报告

https://oj.leetcode.com/problems/roman-to-integer/ Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 把一个给定的罗马字符转为数字.首先要了解罗马字符表示的规则. 一,羅馬數字共有7個,即I(1).V(5).X(10).L(50).C(100).D(500)和M(1000). 二,在