From a91a41f28cb4aee3ce64a83df1375a1f65350a2c Mon Sep 17 00:00:00 2001 From: zlax Date: Mon, 13 Mar 2023 16:35:14 +0300 Subject: [PATCH] add IIII decimal variation --- index.html | 54 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/index.html b/index.html index e4d665c..0d4b61e 100644 --- a/index.html +++ b/index.html @@ -137,8 +137,9 @@ function r2a(roma, type) { else arab = arab - prev * 2 + curr; } switch (type) { - case "r10": if (roma == a2r10(arab)) - return arab; + case "r10": + if (roma == a2r10(arab) || roma == a2r10i(arab)) + return arab; case "r8": if (roma == a2r8(arab)) return arab; } @@ -189,6 +190,18 @@ function a2r10(n) { return roman; } +function a2r10i(n) { + var roman = ''; + roman += 'M'.repeat(n / 1000); n %= 1000; + roman += 'D'.repeat(n / 500); n %= 500; + roman += 'C'.repeat(n / 100); n %= 100; + roman += 'L'.repeat(n / 50); n %= 50; + roman += 'X'.repeat(n / 10); n %= 10; + roman += 'V'.repeat(n / 5); n %= 5; + roman += 'I'.repeat(n); + return roman; +} + function a2r8(n) { var roman = ''; roman += 'M'.repeat(n / 512); n %= 512; @@ -205,14 +218,19 @@ function a2r(arab, type) { if (arab > 0 && arab < 4000) { switch (type) { case "r10": return a2r10(arab); + case "r10i": return a2r10i(arab); case "r8": return a2r8(arab); } } else return "..."; } function updatea2r() { - document.getElementById("outr10").innerHTML = - a2r(document.getElementById("arin").value, "r10"); + var r10 = a2r(document.getElementById("arin").value, "r10"); + var r10i = a2r(document.getElementById("arin").value, "r10i"); + var resr10 = r10; + if (r10 != r10i) resr10 += "
" + r10i + + ""; + document.getElementById("outr10").innerHTML = resr10; document.getElementById("outr8").innerHTML = a2r(document.getElementById("arin").value, "r8"); } @@ -257,41 +275,47 @@ function fulltable(type) { restab += "" + a2r8(num) + ""; restab += "" + num + ""; - restab += "" + a2r10(num) + ""; + var r10 = a2r10(num); + var r10i = a2r10i(num); + restab += "" + r10; + if (r10 != r10i) + restab += " " + r10i + ""; + restab += ""; } restab += ""; document.getElementById("allnum").innerHTML = restab; break; case "roman8": var restab = "

octal coincidence table

"; - document.getElementById("allnum").innerHTML = restab; restab += ""; var num; for (num = 1; num < 4000; num++) { - var a2r8num = a2r8(num); + var r8 = a2r8(num); restab += ""; restab += ""; - restab += ""; + r8 + ""; + restab += ""; } restab += "
arabic" + "octal roman" + "decimal roman value
" + num + "" + - a2r8num + "" + r2a(a2r8num, "r10") + "
" + r2a(r8, "r10") + "
"; document.getElementById("allnum").innerHTML = restab; break; case "roman10": var restab = "

decimal coincidence table

"; - document.getElementById("allnum").innerHTML = restab; restab += ""; var num; for (num = 1; num < 4000; num++) { - var a2r10num = a2r10(num); + var r10 = a2r10(num); + var r10i = a2r10i(num); restab += ""; - restab += ""; - var coinc = r2a(a2r10num, "r8"); + restab += ""; + var coinc = r2a(r10, "r8"); if (coinc == "...") restab += ""; else restab += ""; } @@ -367,7 +391,7 @@ function chbg() {
+ value="DCLXVI">
arabic" + "decimal roman" + "octal roman value
" + num + "" + - a2r10num + "" + r10; + if (r10 != r10i) + restab += " " + r10i + ""; + restab += "
" + coinc + "