|
Les chiffres romain bien que peut efficace sont très utilisés encore aujourd'hui pour numéroter des annexes, suite de films et des pages de prélude.
Voici leur représentation classique :
| I |
1 |
1 |
1 |
| II |
2 |
2 |
2 |
| III |
3 |
3 |
3 |
| IV |
4 |
4 |
4 |
| V |
5 |
5 |
5 |
| VI |
6 |
6 |
6 |
| VII |
7 |
7 |
7 |
| VIII |
8 |
10 |
8 |
| IX |
9 |
11 |
9 |
| X |
10 |
12 |
A |
| XI |
11 |
13 |
B |
| XII |
12 |
14 |
C |
| XIII |
13 |
15 |
D |
| XIV |
14 |
16 |
E |
| XV |
15 |
17 |
F |
| ... |
... |
... |
... |
Toutefois, il est a noter que les chiffres romain ne dépasse que de très peu les milliers en terme de numérotation.
Pour pouvoir générer automatiquent les nombres à partir de l'équivalence numérique, vous trouverez la réponse que vous souhaitez, à l'aide du code source C++ suivant :
- #include <iostream>
- #include <string.h>
-
- char ReturnString[255];
-
- char * NumberToRomain(int X) {
- strcpy(ReturnString,"");
- switch((X % 1000) / 100) {
- case 9: strcat(ReturnString,"CM");break;
- case 8: strcat(ReturnString,"DCCC");break;
- case 7: strcat(ReturnString,"DCC");break;
- case 6: strcat(ReturnString,"DC");break;
- case 5: strcat(ReturnString,"D");break;
- case 4: strcat(ReturnString,"CD");break;
- case 3: strcat(ReturnString,"CCC");break;
- case 2: strcat(ReturnString,"CC");break;
- case 1: strcat(ReturnString,"C");break;
- }
- switch((X % 100) / 10) {
- case 9: strcat(ReturnString,"XC");break;
- case 8: strcat(ReturnString,"LXXX");break;
- case 7: strcat(ReturnString,"LXX");break;
- case 6: strcat(ReturnString,"LX");break;
- case 5: strcat(ReturnString,"L");break;
- case 4: strcat(ReturnString,"XL");break;
- case 3: strcat(ReturnString,"XXX");break;
- case 2: strcat(ReturnString,"XX");break;
- case 1: strcat(ReturnString,"X");break;
- }
- switch(X % 10) {
- case 9: strcat(ReturnString,"IX");break;
- case 8: strcat(ReturnString,"VIII");break;
- case 7: strcat(ReturnString,"VII");break;
- case 6: strcat(ReturnString,"VI");break;
- case 5: strcat(ReturnString,"V");break;
- case 4: strcat(ReturnString,"IV");break;
- case 3: strcat(ReturnString,"III");break;
- case 2: strcat(ReturnString,"II");break;
- case 1: strcat(ReturnString,"I");break;
- }
- return ReturnString;
- }
-
- int main()
- {
- for(int I=1;I<=100;I++) {
- std::cout << I << " = " << NumberToRomain(I) << std::endl;
- }
- return 0;
- }
|
on obtiendra le résultat suivant :
1 = I
2 = II
3 = III
4 = IV
5 = V
6 = VI
7 = VII
8 = VIII
9 = IX
10 = X
11 = XI
12 = XII
13 = XIII
14 = XIV
15 = XV
16 = XVI
17 = XVII
18 = XVIII
19 = XIX
20 = XX
21 = XXI
22 = XXII
23 = XXIII
24 = XXIV
25 = XXV
26 = XXVI
27 = XXVII
28 = XXVIII
29 = XXIX
30 = XXX
31 = XXXI
32 = XXXII
33 = XXXIII
34 = XXXIV
35 = XXXV
36 = XXXVI
37 = XXXVII
38 = XXXVIII
39 = XXXIX
40 = XL
41 = XLI
42 = XLII
43 = XLIII
44 = XLIV
45 = XLV
46 = XLVI
47 = XLVII
48 = XLVIII
49 = XLIX
50 = L
51 = LI
52 = LII
53 = LIII
54 = LIV
55 = LV
56 = LVI
57 = LVII
58 = LVIII
59 = LIX
60 = LX
61 = LXI
62 = LXII
63 = LXIII
64 = LXIV
65 = LXV
66 = LXVI
67 = LXVII
68 = LXVIII
69 = LXIX
70 = LXX
71 = LXXI
72 = LXXII
73 = LXXIII
74 = LXXIV
75 = LXXV
76 = LXXVI
77 = LXXVII
78 = LXXVIII
79 = LXXIX
80 = LXXX
81 = LXXXI
82 = LXXXII
83 = LXXXIII
84 = LXXXIV
85 = LXXXV
86 = LXXXVI
87 = LXXXVII
88 = LXXXVIII
89 = LXXXIX
90 = XC
91 = XCI
92 = XCII
93 = XCIII
94 = XCIV
95 = XCV
96 = XCVI
97 = XCVII
98 = XCVIII
99 = XCIX
100 = C
|
|
|
| Dernière mise à jour: Lundi, le 19 juillet 2010 |