芳香数的形式为 AR,其中每个 A 是阿拉伯数字,每个 R 是罗马数字。
每对 AR 贡献一个如下所述的值,通过将这些值相加或相减,我们得到整个芳香数的值。阿拉伯数字 A 可以是 0、1、2、3、4、5、6、7、8 或 9。罗马数字 R 是七个字母 I、V、X、L、C、D 或 M 之一. 每个罗马数字都有一个基值:
该程序旨在获取同一行上的 AR 值(例如 3V 输入),并将其相乘。3V 将是 3 x 5 = 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);
}
}