Java程序:将罗马数字转换为整数
罗马数字 - 基于古罗马数字系统,使用符号来表示数字。这些数字被称为罗马数字。符号分别为 I、V、X、L、C、D 和 M,分别代表 1、5、10、50、100、500 和 1,000。
整数 - 整数就是包含正数、负数和零的整数。分数不是整数。
在这里,我们根据其整数值设置了符号值。每当输入罗马数字时,我们将其划分为个位数,然后计算相应的罗马数字。
I - 1 II – 2 III – 3 IV – 4 V – 5 VI – 6 . . . X – 10 XI – 11 . . XV - 15
在本文中,我们将了解如何在 Java 中将罗马数字转换为整数。
举几个例子 -
示例 1
Input Roman number is XIV. Converting it to Integer = 14.
示例 2
Input Roman number is CCXXXIV. Converting it to Integer = 234.
示例 3
Input Roman number is MCCXXXI. Converting it to Integer = 1231.
算法
步骤 1 - 通过静态输入或用户输入获取输入的罗马数字作为字符串。
步骤 2 - 在一个用户定义的方法中,我们声明了一些条件,其中包含罗马数字及其相应的整数值。
步骤 3 - 在另一个用户定义的方法中,通过使用给定字符串的索引值来计算罗马数字的值。
步骤 4 - 获取整数后,将其打印输出。
多种方法
我们提供了不同的方法来解决这个问题。
使用用户自定义方法和静态输入值。
使用用户自定义方法和用户输入值。
让我们逐一查看程序及其输出。
方法 1:使用用户自定义方法和静态输入值
在这种方法中,我们通过静态输入方法声明一个罗马输入数字,并将此数字作为参数传递给用户定义的方法,然后在方法内部使用算法将罗马数字转换为整数。
示例
import java.util.*; import java.io.*; import java.lang.Math; public class Main { public static void main(String args[]) { Main obj = new Main(); String inputRoman= "LXVII"; System.out.println("The Integer value of given Roman number is: "+obj.romanToInt(inputRoman)); } int NumValue(char rom) { if (rom == 'I') return 1; if (rom == 'V') return 5; if (rom == 'X') return 10; if (rom == 'L') return 50; if (rom == 'C') return 100; if (rom == 'D') return 500; if (rom == 'M') return 1000; return -1; } int romanToInt(String str) { int sum = 0; for (int i=0; i<str.length(); i++) { int s1 = NumValue(str.charAt(i)); if (i+1 <str.length()) { int s2 = NumValue(str.charAt(i+1)); if (s1 >= s2) { sum = sum + s1; } else{ sum = sum - s1; } } else { sum = sum + s1; } } return sum; } }
输出
The Integer value of given Roman number is: 67
方法 2:使用用户输入值
在这种方法中,我们通过用户输入方法声明一个罗马输入数字,并将此数字作为参数传递给用户定义的方法,然后在方法内部使用算法将罗马数字转换为整数。
示例
import java.util.*; import java.io.*; import java.lang.Math; public class Main { public static void main(String args[]) { Main obj = new Main(); Scanner sc = new Scanner(System.in); System.out.print("Enter a Roman Number in capital letters: "); String inputRoman= sc.nextLine(); System.out.println("The Integer value of given Roman number is:"+obj.romanToInt(inputRoman)); } int NumValue(char rom){ if (rom == 'I') return 1; if (rom == 'V') return 5; if (rom == 'X') return 10; if (rom == 'L') return 50; if (rom == 'C') return 100; if (rom == 'D') return 500; if (rom == 'M') return 1000; return -1; } int romanToInt(String str) { int sum = 0; for (int i=0; i<str.length(); i++) { int s1 = NumValue(str.charAt(i)); if (i+1 <str.length()) { int s2 = NumValue(str.charAt(i+1)); if (s1 >= s2) { sum = sum + s1; } else { sum = sum - s1; } } else { sum = sum + s1; } } return sum; } }
输出
Enter a Roman Number in capital letters: V The Integer value of given Roman number is: 5
在本文中,我们探讨了如何使用不同的方法在 Java 中将罗马数字转换为整数。
广告