ローマ数字を 10 進数に変換する C 言語アルゴリズムを以下に示します。
ステップ 1 - 開始
ステップ 2 - 実行時にローマ数字を読み取る
ステップ 3 - 長さ: = strlen(roman)
ステップ 4 - i = 0 から長さ -1
ステップ 4.1 - switch(roman[i])
ステップ 4.1.1 - case 'm':
ステップ 4.1.2 - case '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 - case 'l':
ステップ 4.1.8 - case '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 - case 'v':
ステップ 4.1.12 - case 'V':
ステップ 4.1.12.1 - d[i]: =5
ステップ 4.1.13 - case 'i':
ステップ 4.1.14 - case 'I':
ステップ 4.1.14.1 - d[i]: =1
ステップ 5 - i = 0 から length-1
の場合 ステップ 5.1 - (i==length-1) または (d[ i]> の場合) =d[i 1])
ステップ 5.1.1 - dec = d[i]
ステップ 5.2 - それ以外の場合
ステップ 5.2.1 - dec - = 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</p><p>"); printf("Decimal:.........Roman</p><p>"); printf("%5d............%3c</p><p>",1,'I'); printf("%5d............%3c</p><p>",5,'V'); printf("%5d............%3c</p><p>",10,'X'); printf("%5d............%3c</p><p>",50,'L'); printf("%5d............%3c</p><p>",100,'C'); printf("%5d............%3c</p><p>",500,'D'); printf("%5d............%3c</p><p>",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
以上が以下を中国語に翻訳してください: ローマ数字を 10 進数に変換する C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。