芳香族数はARの形式で、各Aはアラビア数字、各Rはローマ数字です。
各ペアARは、以下に説明する値を提供し、これらの値を加算または減算することにより、芳香族数全体の値を取得します。アラビア数字Aは、0、1、2、3、4、5、6、7、8、または9です。ローマ数字Rは、7文字のI、V、X、L、C、D、またはMのいずれかです。 。各ローマ数字には基本値があります。
このプログラムは、同じライン(たとえば3Vのように入力)でAR値を取得し、それを乗算するように設計されています。3Vは3x5=15になります。Vは5なので。
私の問題は、ユーザーが入力したものを取得して整数に文字列を掛けることができないことです。これは退屈になります。文字列をintに変換しようとしましたが、プログラムによってnullformatExceptionが発生します。
また、Aは最初のセル[0]にあり、R(数字)はセル[1]にあります。
import java.io.*;
import java.util.*;
import java.text.*;
public class AromaticNumerals
{
public static int decode (String x) // since input is direct the program doesnt require validation
{
if (x.equals ("I"))
return 1;
else if (x.equals ("V"))
return 5;
else if (x.equals ("X"))
return 10;
else if (x.equals ("L"))
return 50;
else if (x.equals ("C"))
return 100;
else if (x.equals ("D"))
return 500;
else
return 1000;
}
public static void main (String str[])
throws IOException
{
BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in));
int Output;
int MAX = 20;
String[] x = new String [MAX]; // by picking an array we can separate the A-R
System.out.println ("Please input an aromatic number. (AR)");
x [0] = (stdin.readLine ());
int y = Integer.parseInt (x [0]);
Output = ( y * decode (x [1]));
System.out.println (Output);
}
}