青の部隊 505小隊 ULZ

ローマ数字 - 例1おまけ

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集
コード
#include <stdio.h>

int dec2roman(unsigned int val, char *roman_digit)
{
        int error;
        int i;
        int v;

        if(roman_digit == 0 ||
           *roman_digit == '\0' ||
           val > 3 && *(roman_digit+1) == '\0' ||
           val > 8 && *(roman_digit+2) == '\0' )
                return 1;

        if(val/10)
        {
                error = dec2roman(val/10, roman_digit+2);
                if(error)
                        return error;
        }
        if(val % 10 % 5 == 4)
                printf("%c", *roman_digit);
        v = (val % 10 + 1) / 5;
        if(v)
                printf("%c", *(roman_digit+v));
        for(i = val % 10 % 5; i % 4 != 0; i--)
        {
                printf("%c", *roman_digit);
        }
        return 0;
}

int main(int argc, char** argv)
{
        int val;

        for(val = 1; val < 4001; val++)
        {
                printf("%d = ", val);
                if( dec2roman( (unsigned int)val, "IVXLCDM") )
                        printf("error.\n");
                else
                        printf("\n");
        }

        return 0;
}

実行結果
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
101 = CI
102 = CII
103 = CIII
104 = CIV
105 = CV
106 = CVI
107 = CVII
108 = CVIII
109 = CIX
110 = CX
111 = CXI
112 = CXII
113 = CXIII
114 = CXIV
115 = CXV
116 = CXVI
117 = CXVII
118 = CXVIII
119 = CXIX
120 = CXX
...
135 = CXXXV
136 = CXXXVI
137 = CXXXVII
138 = CXXXVIII
139 = CXXXIX
140 = CXL
141 = CXLI
142 = CXLII
143 = CXLIII
144 = CXLIV
145 = CXLV
146 = CXLVI
147 = CXLVII
148 = CXLVIII
149 = CXLIX
150 = CL
151 = CLI
152 = CLII
153 = CLIII
154 = CLIV
155 = CLV
156 = CLVI
157 = CLVII
158 = CLVIII
159 = CLIX
...
186 = CLXXXVI
187 = CLXXXVII
188 = CLXXXVIII
189 = CLXXXIX
190 = CXC
191 = CXCI
192 = CXCII
193 = CXCIII
194 = CXCIV
195 = CXCV
196 = CXCVI
197 = CXCVII
198 = CXCVIII
199 = CXCIX
200 = CC
201 = CCI
202 = CCII
203 = CCIII
204 = CCIV
205 = CCV
206 = CCVI
207 = CCVII
208 = CCVIII
209 = CCIX
210 = CCX
211 = CCXI
212 = CCXII
213 = CCXIII
214 = CCXIV
215 = CCXV
216 = CCXVI
217 = CCXVII
218 = CCXVIII
219 = CCXIX
220 = CCXX
...
390 = CCCXC
391 = CCCXCI
392 = CCCXCII
393 = CCCXCIII
394 = CCCXCIV
395 = CCCXCV
396 = CCCXCVI
397 = CCCXCVII
398 = CCCXCVIII
399 = CCCXCIX
400 = CD
401 = CDI
402 = CDII
403 = CDIII
404 = CDIV
405 = CDV
406 = CDVI
407 = CDVII
408 = CDVIII
409 = CDIX
410 = CDX
...
490 = CDXC
491 = CDXCI
492 = CDXCII
493 = CDXCIII
494 = CDXCIV
495 = CDXCV
496 = CDXCVI
497 = CDXCVII
498 = CDXCVIII
499 = CDXCIX
500 = D
501 = DI
502 = DII
503 = DIII
504 = DIV
505 = DV
506 = DVI
507 = DVII
508 = DVIII
509 = DIX
510 = DX
...
898 = DCCCXCVIII
899 = DCCCXCIX
900 = CM
901 = CMI
902 = CMII
903 = CMIII
904 = CMIV
905 = CMV
906 = CMVI
907 = CMVII
908 = CMVIII
909 = CMIX
910 = CMX
911 = CMXI
912 = CMXII
913 = CMXIII
914 = CMXIV
915 = CMXV
916 = CMXVI
917 = CMXVII
918 = CMXVIII
919 = CMXIX
920 = CMXX
...
980 = CMLXXX
981 = CMLXXXI
982 = CMLXXXII
983 = CMLXXXIII
984 = CMLXXXIV
985 = CMLXXXV
986 = CMLXXXVI
987 = CMLXXXVII
988 = CMLXXXVIII
989 = CMLXXXIX
990 = CMXC
991 = CMXCI
992 = CMXCII
993 = CMXCIII
994 = CMXCIV
995 = CMXCV
996 = CMXCVI
997 = CMXCVII
998 = CMXCVIII
999 = CMXCIX
1000 = M
1001 = MI
1002 = MII
1003 = MIII
1004 = MIV
1005 = MV
1006 = MVI
1007 = MVII
1008 = MVIII
1009 = MIX
1010 = MX
...
3990 = MMMCMXC
3991 = MMMCMXCI
3992 = MMMCMXCII
3993 = MMMCMXCIII
3994 = MMMCMXCIV
3995 = MMMCMXCV
3996 = MMMCMXCVI
3997 = MMMCMXCVII
3998 = MMMCMXCVIII
3999 = MMMCMXCIX
4000 = error.

タグ:

+ タグ編集
  • タグ:
ウィキ募集バナー