Roman Numeral Arithmetic
Lakukan penjumlahan, pengurangan, perkalian, dan pembagian dengan angka Romawi.
= 14
= 9
RomanNumeralArithmetic.reference
I
1
V
5
X
10
L
50
C
100
D
500
M
1000
RomanNumeralArithmetic.rules
- RomanNumeralArithmetic.rule1
- RomanNumeralArithmetic.rule2
- RomanNumeralArithmetic.rule3
Tentang alat ini
Angka Romawi adalah sistem bilangan kuno yang masih digunakan dalam konteks formal, mulai dari wajah jam hingga tanggal rilis film. Meskipun membaca angka Romawi cukup mudah, melakukan operasi aritmatika langsung dengannya rumit karena notasinya tidak memiliki angka nol dan tidak sejalan dengan logika posisional. Alat ini menghilangkan kesulitan tersebut dengan memungkinkan Anda untuk menambah, mengurangi, mengalikan, dan membagi angka Romawi secara instan, mengonversi antara angka Romawi dan Arab dengan lancar.
Untuk menggunakan alat ini, pilih operasi dari menu dropdown, masukkan dua angka Romawi atau campurkan masukan Romawi dan Arab, lalu klik Hitung. Alat ini langsung melakukan operasi aritmatika dan menampilkan hasilnya dalam kedua format, Romawi dan Arab, sehingga memudahkan Anda memverifikasi pekerjaan atau memahami bagaimana aritmatika Romawi berhubungan dengan notasi modern. Ini sempurna untuk siswa yang belajar sejarah, penggemar teka-teki silang, atau siapa pun yang ingin tahu bagaimana orang Romawi melakukan perhitungan sebelum aljabar ditemukan.
Pertanyaan yang Sering Diajukan
Implementasi Kode
ROMAN_VALUES = [
(1000,'M'),(900,'CM'),(500,'D'),(400,'CD'),(100,'C'),(90,'XC'),
(50,'L'),(40,'XL'),(10,'X'),(9,'IX'),(5,'V'),(4,'IV'),(1,'I')
]
def to_int(roman: str) -> int:
"""Convert Roman numeral string to integer."""
values = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
result, prev = 0, 0
for ch in reversed(roman.upper()):
val = values[ch]
if val < prev:
result -= val
else:
result += val
prev = val
return result
def to_roman(n: int) -> str:
"""Convert integer (1-3999) to Roman numeral string."""
if not 1 <= n <= 3999:
raise ValueError("Number must be between 1 and 3999")
result = ""
for value, numeral in ROMAN_VALUES:
while n >= value:
result += numeral
n -= value
return result
# Arithmetic operations
def roman_add(a: str, b: str) -> str:
return to_roman(to_int(a) + to_int(b))
def roman_sub(a: str, b: str) -> str:
return to_roman(to_int(a) - to_int(b))
def roman_mul(a: str, b: str) -> str:
return to_roman(to_int(a) * to_int(b))
def roman_div(a: str, b: str) -> str:
r = to_int(a) // to_int(b)
return to_roman(r)
# Examples
print(f"XIV + IX = {roman_add('XIV', 'IX')}") # 14+9=23 = XXIII
print(f"L - XIII = {roman_sub('L', 'XIII')}") # 50-13=37 = XXXVII
print(f"V × IV = {roman_mul('V', 'IV')}") # 5×4=20 = XX
print(f"XX ÷ IV = {roman_div('XX', 'IV')}") # 20÷4=5 = V
# Convert between formats
for n in [1, 4, 9, 14, 40, 90, 399, 1994, 2024]:
print(f"{n} = {to_roman(n)}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.