这两种方法有什么区别? JAVA

时间:2013-10-27 19:33:33

标签: java methods roman-numerals

我的教授为我提供了一系列方法来填写罗马数字程序(加法格式,所以4 = IIII,9 = VIIII等)

我无法理解这两种方法之间的区别:

   **
   * This method prints, to the standard output and in purely additive
   * notation, the Roman numeral corresponding to a natural number.
   * If the input value is 0, nothing is printed. This
   * method must call the method romanDigitChar(). 
   * @param val   ?
   */

    public void printRomanNumeral(int val)
    {

    }

   **
   * This method returns the Roman numeral digit corresponding
   * to an integer value. You must use a nested-if statement.
   * This method cannot perform any arithmetic operations. 
   * @param val  ?
   * @return     ?
   */

    public char romanDigitChar(int val)

    {

    }

romanDigitChar是否应该逐位读取一个数字,并且一次只返回一位数?如果是这样,我不明白printRomanNumeral将如何调用它。

我研究过其他罗马数字程序,但我似乎找不到任何使用其他方法调用的方法,比如我可以将它与之比较。

感谢任何建议!

3 个答案:

答案 0 :(得分:5)

我假设romanDigitChar为完全匹配的数字返回一个字符,例如仅限1,5,10,50,100等。 printRomanNumeral会重复调用此值作为数字将已知值转换为字符。我建议使用两个嵌套循环,一个用于具有递减值的特定字符的金额,一个用于提取每个值。内部循环调用第二种方法。

我认为他/她需要ASCII字符,尽管罗马数字有特殊的Unicode字符。

答案 1 :(得分:1)

对于初学者来说,romanDigitchar返回一个char(对应于作为输入给出的自然数的Roman Numeral)。 printRomanNumeral不返回任何内容,但应该打印罗马数字。

答案 2 :(得分:0)

Is romanDigitChar supposed to read a number digit by digit, and only return one digit at a time?是的,例如,如果你想打印两个罗马数字数字:IIII,VIIII。在你的 void printRomanNumeral(int val)方法,您需要这样做:

public void printRomanNumeral(int val)
{
         System.out.println(romanDigitChar(4));
         System.out.println(romanDigitChar(9));          
}

但是在您的char romanDigitChar(int val)方法中,您需要使用某种算法将自然数转换为罗马数字,例如:

    public char romanDigitChar(int val)
    {

        if(val == 4) {
          //Return a roman digit 4.
        }
        if(val == 9) {
          //Return a roman digit 9.
        }

      }