ローマ数字を10進数に変換するCプログラム
以下に示すのは、C言語でローマ数字を10進数に変換するアルゴリズムです-
アルゴリズム
ステップ1-開始
ステップ2-実行時にローマ数字を読む
ステップ3-長さ:=strlen(roman)
ステップ4− for i =0 to length-1 do
ステップ4.1-switch(roman [i])
ステップ4.1.1-ケース「m」:
ステップ4.1.2-ケース「M」:
ステップ4.1.2.1− d [i]:=1000
ステップ4.1.3-ケース「d」:
ステップ4.1.4-ケース「D」:
ステップ4.1.4.1− d [i]:=500
ステップ4.1.5-ケース「c」:
ステップ4.1.6-ケース「C」:
ステップ4.1.6.1− d [i]:=100
ステップ4.1.7-ケース「l」:
ステップ4.1.8-ケース「L」:
ステップ4.1.8.1− d [i]:=50
ステップ4.1.9-ケース「x」:
ステップ4.1.10-ケース「X」:
ステップ4.1.10.1− d [i]:=10
ステップ4.1.11-ケース「v」:
ステップ4.1.12-ケース「V」:
ステップ4.1.12.1− d [i]:=5
ステップ4.1.13-ケース「i」:
ステップ4.1.14-ケース「I」:
ステップ4.1.14.1− d [i]:=1
ステップ5-fori =0 to length-1 do
ステップ5.1-if(i ==length-1)or(d [i]> =d [i + 1])then
ステップ5.1.1− deci + =d [i]
ステップ5.2-else
ステップ5.2.1− deci-=d [i]
ステップ6-ローマ数字に相当する10進数を印刷する
ステップ7-停止
プログラム
以下は、ローマ数字を10進数に変換するCプログラムです。 −
#include <stdio.h> #include <conio.h> main(){ char roman[30]; int deci=0; int length,i,d[30]; printf("The Roman equivalent to decimal\n"); printf("Decimal:.........Roman\n"); printf("%5d............%3c\n",1,'I'); printf("%5d............%3c\n",5,'V'); printf("%5d............%3c\n",10,'X'); printf("%5d............%3c\n",50,'L'); printf("%5d............%3c\n",100,'C'); printf("%5d............%3c\n",500,'D'); printf("%5d............%3c\n",1000,'M'); printf("Enter a Roman numeral:"); scanf("%s",roman); length=strlen(roman); for(i=0;i<length;i++){ switch(roman[i]){ case 'm': case 'M': d[i]=1000; break; case 'd': case 'D': d[i]= 500; break; case 'c': case 'C': d[i]= 100; break; case 'l': case 'L': d[i]= 50; break; case 'x': case 'X': d[i]= 10; break;; case 'v': case 'V': d[i]= 5; break; case 'i': case 'I': d[i]= 1; } } for(i=0;i<length;i++){ if(i==length-1 || d[i]>=d[i+1]) deci += d[i]; else deci -= d[i]; } printf("The Decimal equivalent of Roman numeral %s is %d", roman, deci); }
出力
上記のプログラムを実行すると、次の結果が得られます-
The Roman equivalent to decimal Decimal:.........Roman 1............ I 5............ V 10............ X 50............ L 100............ C 500............ D 1000............ M Enter a Roman numeral: M The Decimal equivalent of Roman Numeral M is 1000
-
16進文字列を10進数に変換するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 16進文字列が与えられたので、それを10進数に変換する必要があります。 問題を解決するための2つのアプローチがあります- ブルートフォースアプローチ 組み込みモジュールの使用 ブルートフォース方式 ここでは、明示的な型キャスト関数、つまり整数を利用します。この関数は、2つの引数、つまり16進数と同等の引数とベース(16)を取ります。この関数は、16進文字列を整数型の同等の10進数に変換するために使用されます。これは、さらに文字列形式に型キャストして戻すことができます。 例 #input strin
-
Pythonプログラムで10進数を2進数に変換する
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 10進数が与えられているので、それに相当する2進数に変換する必要があります。 与えられた問題を解決するための2つのアプローチがあります。それらを1つずつ見てみましょう- 再帰的アプローチ 例 def DecimalToBinary(num): if num > 1: DecimalToBinary(num // 2) print(num % 2, end = '') # main if _