如何将数字转换为罗马数字?

时间:2013-10-21 00:39:24

标签: java

对于一个班级,我们正在创建一个程序,该程序接收一个数字并将其作为罗马数字吐出。这应该非常简单,因为我们甚至不必担心四个是IV。在这个计划中,四个是IIII。有人对如何做到这一点有任何建议......?我们不能使用数组。他的指示说:

此方法打印到标准输出和纯添加剂     *符号,罗马数字对应自然数。     *如果输入值为0,则不打印任何内容。

我尝试了几种不同的方式,而我的逻辑不正确。我真的很感激您的任何建议。

这是我上次尝试过的......

romanDigitChar(val);

 if (val - 1000 >= 0)
 {
    int thousands = val / 1000;
    int m_printed = 0;
       while ( m_printed < thousands )
       {
           System.out.print(romanDigitChar(1000));
           m_printed++;
       }
 }

if(val % 100 == 0 && (val/100) >= 5)
{
    System.out.print(romanDigitChar(500));
}
if(val % 100 == 0 && (val/100) < 5)
{
   int hundreds = val / 100;
    int C_printed = 0;
    {
       while ( C_printed < hundreds )
       {
           System.out.print(romanDigitChar(100));
           C_printed++;
       }
    }   
}
if(val % ROMAN_L == 0)
{
    System.out.print(romanDigitChar(50));
}
if(val % 10 == 0 && (val/10) < 5)
{
   int tens = val / 10;
    int X_printed = 0;
    {
       while ( X_printed < tens )
       {
           System.out.print(romanDigitChar(10));
           X_printed++;
       }
    }   
}
if(val % 5 == 0)
{
    System.out.print(romanDigitChar(50));
}
if(val == 0)
System.out.println("Zero");

1 个答案:

答案 0 :(得分:0)

我不确定你的意思,但是

public String createRomanNumeral(int romanNumeral){
   String romanNumeralString = "";
   for(int x=0;x<romanNumeral;x++){
       romanNumeralString += "I";
   }
   return romanNumeralString;
}
如果我的猜测是正确的,

会有效。