JAVA程序将罗马数字转换为整数数字

WBOY
WBOY 转载
2023-08-25 11:41:20 152浏览

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.

算法

Step-1 - 通过静态输入或用户输入以字符串形式获取输入罗马数字。

Step-2 - 在一个用户定义的方法中,我们声明了一些条件,其中存在具有适当整数值的罗马数字。

Step-3 - 在另一个用户定义的方法中,通过使用给定字符串的索引值,我们计算罗马数字值。

Step-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 中将罗马数字转换为整数。

以上就是JAVA程序将罗马数字转换为整数数字的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:tutorialspoint,如有侵犯,请联系admin@php.cn删除