思路:找到1-100间的特殊区间,使用if语句判断输入的数字是否在这个区间,如果在就减去这个区间最小值给这个数字(比如区间1-3,如果输入3,则3-1=2,把2给需下一次判断的值)然后循环再判断,直到这个值为0。
下边是我写的代码,欢迎各位朋友指点。
1#include <stdio.h>
2
3int main()
4{
5 int digit = 1;
6 int roman;
7
8 while ( digit <= 100 )
9 {
10 printf( "%d\t", digit );
11 roman = digit;
12
13 while ( roman > 0 )
14 {
15 if ( roman == 100 )
16 {
17 printf( "C" );
18 roman -= 100;
19 }
20 else if ( roman < 100 && roman >= 90 )
21 {
22 printf( "XC" );
23 roman -= 90;
24 }
25 else if ( roman < 90 && roman >= 50 )
26 {
27 printf( "L" );
28 roman -= 50;
29 }
30 else if ( roman < 50 && roman >= 49 )
31 {
32 printf( "IL" );
33 roman -= 49;
34 }
35 else if ( roman < 49 && roman >= 40 )
36 {
37 printf( "XL" );
38 roman -= 40;
39 }
40 else if ( roman < 40 && roman >= 10 )
41 {
42 printf( "X" );
43 roman -= 10;
44 }
45 else if ( roman < 10 && roman >= 9 )
46 {
47 printf( "IX" );
48 roman -= 9;
49 }
50 else if ( roman < 9 && roman >= 5 )
51 {
52 printf( "V" );
53 roman -= 5;
54 }
55 else if ( roman < 5 && roman >= 4 )
56 {
57 printf( "IV" );
58 roman -= 4;
59 }
60 else if ( roman < 4 && roman >= 1 )
61 {
62 printf( "I" );
63 roman -= 1;
64 }
65 else
66 printf( "must between 1~100 !" );
67 }
68
69 printf( "\n" );
70 digit++;
71 }
72 return 0;
73}
2
3int main()
4{
5 int digit = 1;
6 int roman;
7
8 while ( digit <= 100 )
9 {
10 printf( "%d\t", digit );
11 roman = digit;
12
13 while ( roman > 0 )
14 {
15 if ( roman == 100 )
16 {
17 printf( "C" );
18 roman -= 100;
19 }
20 else if ( roman < 100 && roman >= 90 )
21 {
22 printf( "XC" );
23 roman -= 90;
24 }
25 else if ( roman < 90 && roman >= 50 )
26 {
27 printf( "L" );
28 roman -= 50;
29 }
30 else if ( roman < 50 && roman >= 49 )
31 {
32 printf( "IL" );
33 roman -= 49;
34 }
35 else if ( roman < 49 && roman >= 40 )
36 {
37 printf( "XL" );
38 roman -= 40;
39 }
40 else if ( roman < 40 && roman >= 10 )
41 {
42 printf( "X" );
43 roman -= 10;
44 }
45 else if ( roman < 10 && roman >= 9 )
46 {
47 printf( "IX" );
48 roman -= 9;
49 }
50 else if ( roman < 9 && roman >= 5 )
51 {
52 printf( "V" );
53 roman -= 5;
54 }
55 else if ( roman < 5 && roman >= 4 )
56 {
57 printf( "IV" );
58 roman -= 4;
59 }
60 else if ( roman < 4 && roman >= 1 )
61 {
62 printf( "I" );
63 roman -= 1;
64 }
65 else
66 printf( "must between 1~100 !" );
67 }
68
69 printf( "\n" );
70 digit++;
71 }
72 return 0;
73}