ローマ数字を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 _