| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2211 人关注过本帖
标题:[求助]如何转化阿拉伯数字和罗马数字?
只看楼主 加入收藏
avenger258
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-9-17
收藏
 问题点数:0 回复次数:3 
[求助]如何转化阿拉伯数字和罗马数字?
Roman Numeral Table
1 I 14 XIV 27 XXVII 150 CL
2 II 15 XV 28 XXVIII 200 CC
3 III 16 XVI 29 XXIX 300 CCC
4 IV 17 XVII 30 XXX 400 CD
5 V 18 XVIII 31 XXXI 500 D
6 VI 19 XIX 40 XL 600 DC
7 VII 20 XX 50 L 700 DCC
8 VIII 21 XXI 60 LX 800 DCCC
9 IX 22 XXII 70 LXX 900 CM
10 X 23 XXIII 80 LXXX 1000 M
11 XI 24 XXIV 90 XC 1600 MDC
12 XII 25 XXV 100 C 1700 MDCC
13 XIII 26 XXVI 101 CI 1900 MCM

Roman Numerals
I = 1 C = 100
V = 5 D = 500
X = 10 M = 1000
L = 50
4 IV
72 LXXII
148 CXLVIII
291 CCXCI
704 DCCIV
2008 MMVIII
1984 MCMLXXXIV



上图是罗马数字的表示,求各位大侠指点下,如何将自己输入的任意阿拉伯数字转化为罗马数字.这个程序的关键函数要怎么写?比如:

[此贴子已经被作者于2007-9-17 5:42:09编辑过]

搜索更多相关主题的帖子: 阿拉伯数字 罗马数字 
2007-09-17 05:39
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
为这些数字建立映射表
1
4
5
9
10
40
50
90
100
400
500
900
1000
而后贪心即可
2007-09-17 11:08
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 

#include <iostream>
#include <string>

using namespace std;

int arr1[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
string arr2[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};

string covert2Roman(int n)
{
string s;
int i=0;
while(n){
if(n>=arr1[i]){
n-=arr1[i];
s+=arr2[i];
}
else {
i++;
}
}
return s;
}

int main()
{
int n;
while(cin>>n){
cout<<covert2Roman(n)<<endl;
}
}

2007-09-17 11:22
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
LS很强,赞

Fight  to win  or  die...
2007-09-17 14:26
快速回复:[求助]如何转化阿拉伯数字和罗马数字?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020233 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved