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 中將羅馬數字轉換為整數。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP