2011-05-12 74 views
1

我需要将阿拉伯语转换为罗马字母。我有一个方法编号(int地方),从某个数字获取每个数字。如何处理我的家庭作业,将阿拉伯数字转换为罗马数字?

例如:5821,其中位置0的数字方法= 1;数字(2)= 8等。

我现在需要编写一个方法(带助手),将这些字符转换为罗马数字。这通常不会很困难,但我不能使用数组,这种方法必须适用于三种情况(1,10和100);所以我不能为每个数字写一个案例(否则我可以用很多开关或if来覆盖这些案例)。

想法任何人?

+1

http://stackoverflow.com/questions/4986521/how-to-convert-integer-value-to-roman-numeral-string/4986630#4986630可能会有所帮助。 – paxdiablo 2011-05-12 14:48:52

+2

我认为用数字分割数字在这里并不是很有用 - 只需使用模运算符'%'来获得所需的数据。 – 2011-05-12 14:49:48

+0

是的,使用数组是我的第一个想法,但我不能使用它们;我应该得到每个数字并将其转换。 – Carlos 2011-05-12 14:49:55

回答

2

由于这是作业,下面的伪代码有意留下不完整。

string toRomanString (int aNumber) 
{ 
    string result = ""; 
    if (aNumber < 1 || aNumber.toString().length() > 4) 
    throw NotImplementedException(); 

    for(int i=0; i < aNumber.toString().length(); i++) 
    { 
    if(i = 0) 
    { 
     throw NotImplementedException(); 
    } 
    elseif(i = 1) 
    { 
     throw NotImplementedException(); 
    } 
    elseif(i = 2) 
    { 
     throw NotImplementedException(); 
    } 
    else 
    { 
     throw NotImplementedException(); 
    } 
    } 
} 
2

的也许不是想买一台数字,你应该想获得。把你显示的值看作一个值的总和,每一个值都可以简单地用罗马数字表示。

convert(5000) + convert(800) + convert(20) + convert(1)