Rumah > Java > javaTutorial > teks badan

Program JAVA untuk menukar angka Rom kepada nombor integer

WBOY
Lepaskan: 2023-08-25 11:41:20
ke hadapan
922 orang telah melayarinya

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
Salin selepas log masuk

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.
Salin selepas log masuk

Contoh 2

Input Roman number is CCXXXIV.
Converting it to Integer = 234.
Salin selepas log masuk

Contoh 3

Input Roman number is MCCXXXI.
Converting it to Integer = 1231.
Salin selepas log masuk

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;
   }
} 
Salin selepas log masuk

Output

The Integer value of given Roman number is: 67
Salin selepas log masuk

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.

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;
   } 
} 
Salin selepas log masuk

Output

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

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan