Maison >Java >javaDidacticiel >Programme JAVA pour convertir des chiffres romains en nombres entiers

Programme JAVA pour convertir des chiffres romains en nombres entiers

WBOY
WBOYavant
2023-08-25 11:41:20928parcourir

Programme JAVA pour convertir des chiffres romains en nombres entiers

Chiffres romains - Basés sur l'ancien système romain, utilisant des symboles pour représenter les nombres. Ces nombres sont appelés chiffres romains. Les symboles sont I, V, X, L, C, D et M, représentant respectivement 1, 5, 10, 50, 100, 500 et 1 000.

Entiers - Un entier est un entier composé de valeurs positives, négatives et nulles. Les fractions ne sont pas des nombres entiers.

Ici, nous définissons la valeur du symbole en fonction de la valeur entière. Chaque fois qu'un chiffre romain est donné en entrée, nous le divisons en unités, puis calculons le chiffre romain approprié.

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

Dans cet article, nous apprendrons comment convertir des chiffres romains en nombres entiers en Java.

Montrez quelques exemples -

Exemple 1

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

Exemple 2

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

Exemple 3

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

Algorithme

Étape 1 - Obtenez les chiffres romains d'entrée sous forme de chaîne via une entrée statique ou une entrée utilisateur.

Étape 2 - Dans une méthode définie par l'utilisateur, nous déclarons certaines conditions où il y a des chiffres romains avec des valeurs entières appropriées.

Étape 3 - Dans une autre méthode définie par l'utilisateur, nous calculons la valeur du chiffre romain en utilisant la valeur d'index de la chaîne donnée.

Étape 4 - Après avoir obtenu l'entier, nous l'imprimons en sortie.

Plusieurs méthodes

Nous proposons des solutions de différentes manières.

  • Via des méthodes définies par l'utilisateur avec des valeurs d'entrée statiques.

  • Via des méthodes définies par l'utilisateur et des valeurs saisies par l'utilisateur.

Regardons le programme et sa sortie un par un.

Méthode 1 : utiliser une méthode définie par l'utilisateur avec des valeurs d'entrée statiques

Dans cette méthode, nous déclarons un nombre d'entrée romain via une méthode de saisie statique et transmettons le nombre en tant que paramètre dans une méthode définie par l'utilisateur, puis utilisons un algorithme à l'intérieur de la méthode pour convertir le chiffre romain en nombre entier.

Exemple

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

Sortie

The Integer value of given Roman number is: 67

Méthode 2 : Utilisation de la valeur saisie par l'utilisateur

Dans cette méthode, nous déclarons un nombre d'entrée romain via la méthode de saisie utilisateur et transmettons ce nombre en tant que paramètre dans la méthode définie par l'utilisateur, puis à l'intérieur de la méthode, nous utilisons un algorithme pour convertir le chiffre romain en nombre entier. p>

Exemple

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

Sortie

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

Dans cet article, nous avons exploré comment convertir des chiffres romains en nombres entiers en Java en utilisant différentes méthodes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer