Pythonでローマ数字を整数に変換するプログラム?
ローマ数字があるとします。それを数値に変換する必要があります。私たちが知っているように、ローマ数字は左から右へ、最大から最小への記号で表されますが、唯一の例外は、記号より1つ少ない記号を表す場合です。いくつかのローマ数字記号の意味は次のとおりです。
-
'M':1000
-
「D」:500
-
「C」:100
-
'L':50
-
'X':10
-
「V」:5
-
「私」:1
したがって、入力が数字="MCLXVI"のような場合、出力は1166になり、M =1000、C =100、合計は1100、L =50、X =10、VI =6になるため、合計は1166になります。
これを解決するには、次の手順に従います。
上記のように数字のリストを取ります
-
ans:=0
-
n:=数字のサイズ
-
インデックスidxと値cの数値ごとに、実行します
-
idx
-
ans:=ans --d [c]
-
-
それ以外の場合
-
ans:=ans + d [c]
-
-
-
ansを返す
理解を深めるために、次の実装を見てみましょう。
例
class Solution: def solve(self, numeral): d = {"M": 1000, "D": 500, "C": 100, "L": 50, "X": 10, "V": 5, "I": 1} ans = 0 n = len(numeral) for (idx, c) in enumerate(numeral): if idx < n - 1 and d[c] < d[numeral[idx + 1]]: ans -= d[c] else: ans += d[c] return ans ob = Solution() numeral = "MCLXVI" print(ob.solve(numeral))
入力
"MCLXVI"
出力
1166
-
キロメートルをマイルに変換するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −距離はキロメートルで与えられ、マイルに変換する必要があります 私たちが知っているように、1キロメートルは0.62137マイルに相当します。 使用する式 Miles = kilometer * 0.62137 それでは、以下の実装の概念を見てみましょう- 例 kilometers = 5.5 # conversion factor as 1 km = 0.621371 miles conv = 0.621371 # calculation miles = kilometers * conv print(k
-
16進文字列を10進数に変換するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 16進文字列が与えられたので、それを10進数に変換する必要があります。 問題を解決するための2つのアプローチがあります- ブルートフォースアプローチ 組み込みモジュールの使用 ブルートフォース方式 ここでは、明示的な型キャスト関数、つまり整数を利用します。この関数は、2つの引数、つまり16進数と同等の引数とベース(16)を取ります。この関数は、16進文字列を整数型の同等の10進数に変換するために使用されます。これは、さらに文字列形式に型キャストして戻すことができます。 例 #input strin