Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

ローマ数字を10進数に変換するためのJavaScriptアルゴリズム


ローマ数字の文字列を受け取り、それに相当する10進数(基数10)を返す関数を作成する必要があります。したがって、この関数のコードを書いてみましょう-

const romanToInt = (s) => {
   const legend = "IVXLCDM";
   const l=[1,5,10,50,100,500,1000];
   let sum=0;
   while(s){
      if(!!s[1] && legend.indexOf(s[0]) < legend.indexOf(s[1])){
         sum += (l[legend.indexOf(s[1])] - l[legend.indexOf(s[0])]);
         s = s.substring(2, s.length);
      } else {
         sum += l[legend.indexOf(s[0])];
         s = s.substring(1, s.length);
      }
   }
   return sum;
};
console.log(romanToInt('CLXXVIII'));
console.log(romanToInt('LXXXIX'));
console.log(romanToInt('LV'));
console.log(romanToInt('MDLV'));

出力

コンソールの出力は-

になります
178
89
55
1555

  1. バニラJavaScriptを使用して文字列を数値に変換する

    JavaScriptで使用可能なparseInt関数には、次のシグネチャがあります- 構文 parseInt(string, radix); パラメータが次の場合- 文字列 −解析する値。この引数が文字列でない場合は、ToStringメソッドを使用して引数に変換されます。この引数の先頭の空白は無視されます。 基数 −文字列の基数(数式の基数)を表す2〜36の整数。 したがって、このメソッドを使用して、文字列と基数を渡し、基数が2から36までの任意の数値を整数に変換できます。たとえば、 例 console.log(parseInt("100", 10)) consol

  2. JavaScriptで10進数を検証するにはどうすればよいですか?

    以下は、JavaScriptで10進数を検証するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>