Rumah  >  Artikel  >  Java  >  Program JAVA untuk menukar angka Rom kepada nombor integer

Program JAVA untuk menukar angka Rom kepada nombor integer

WBOY
WBOYke hadapan
2023-08-25 11:41:20857semak imbas

Program JAVA untuk menukar angka Rom kepada nombor integer

Angka Rom - Berdasarkan sistem Rom kuno, menggunakan simbol untuk mewakili nombor. Nombor ini dipanggil angka Rom. Simbolnya ialah I, V, X, L, C, D dan M, masing-masing mewakili 1, 5, 10, 50, 100, 500 dan 1,000.

Integer - Integer ialah integer yang terdiri daripada nilai positif, negatif dan sifar. Pecahan bukan nombor bulat.

Di sini kami menetapkan nilai simbol berdasarkan nilai integer. Setiap kali angka Rom diberikan sebagai input, kami membahagikannya kepada unit dan kemudian mengira angka Rom yang sesuai.

I - 1
II – 2
III – 3
IV – 4
V – 5
VI – 6
.
.
.
X – 10
XI – 11
.
.
XV - 15

Dalam artikel ini, kita akan belajar cara menukar angka Rom kepada integer di Jawa.

Tunjukkan kepada anda beberapa contoh -

Contoh 1

Input Roman number is XIV.
Converting it to Integer = 14.

Contoh 2

Input Roman number is CCXXXIV.
Converting it to Integer = 234.

Contoh 3

Input Roman number is MCCXXXI.
Converting it to Integer = 1231.

Algoritma

Langkah-1 - Dapatkan input angka Rom dalam bentuk rentetan melalui input statik atau input pengguna.

Langkah-2 - Dalam kaedah yang ditentukan pengguna, kami mengisytiharkan beberapa syarat di mana terdapat angka roman dengan nilai integer yang sesuai.

Langkah-3 - Dalam kaedah yang ditentukan pengguna lain, kami mengira nilai angka Rom dengan menggunakan nilai indeks rentetan yang diberikan.

Langkah-4 - Selepas mendapat integer, kami mencetaknya sebagai output.

Pelbagai kaedah

Kami menyediakan penyelesaian dengan cara yang berbeza.

  • Dengan kaedah yang ditentukan pengguna dengan nilai input statik.

  • Melalui kaedah yang ditentukan pengguna dan nilai input pengguna.

Mari kita lihat program dan outputnya satu persatu.

Kaedah 1: Gunakan kaedah yang ditentukan pengguna dengan nilai input statik

Dalam kaedah ini, kami mengisytiharkan nombor input Rom melalui kaedah input statik dan menghantar nombor itu sebagai parameter kepada kaedah yang ditentukan pengguna dan kemudian menggunakan algoritma di dalam kaedah untuk menukar nombor Rom kepada integer.

Contoh

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;
   }
} 

Output

The Integer value of given Roman number is: 67

Kaedah 2: Menggunakan nilai input pengguna

Dalam kaedah ini kami mengisytiharkan nombor input rumi melalui kaedah input pengguna dan menghantar nombor itu sebagai parameter ke dalam kaedah yang ditentukan pengguna dan kemudian di dalam kaedah kami menggunakan algoritma untuk menukar angka roman kepada integer. p>

Contoh

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;
   } 
} 

Output

Enter a Roman Number in capital letters: V
The Integer value of given Roman number is: 5

Dalam artikel ini, kami meneroka cara menukar angka Rom kepada integer di Jawa menggunakan kaedah yang berbeza.

Atas ialah kandungan terperinci Program JAVA untuk menukar angka Rom kepada nombor integer. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam