Advertisement
Guest User

Untitled

a guest
Oct 21st, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #include <fstream>
  4. using namespace std;
  5. const int M = 1000;
  6. const int D = 500;
  7. const int C = 100;
  8. const int L = 50;
  9. const int X = 10;
  10. const int V = 5;
  11. const int I = 1;
  12.  
  13. int main()
  14. {
  15. ifstream f("fis.in");
  16. int i, c_arabic=0,nr=0, c_arabicp, ok=1;
  17. char c,p;
  18. //retin cifra precedenta
  19. f>>p;
  20. switch( p )
  21. {
  22. case 'M':
  23. c_arabicp= M;
  24. break;
  25. case 'D':
  26.  
  27. c_arabicp = D;
  28. break;
  29. case 'C':
  30.  
  31. c_arabicp = C;
  32. break;
  33. case 'L':
  34.  
  35. c_arabicp = L;
  36. break;
  37. case 'X':
  38.  
  39. c_arabicp = X;
  40. break;
  41. case 'V':
  42.  
  43. c_arabicp = V;
  44. break;
  45. case 'I':
  46. c_arabicp = I;
  47. break;
  48. default:
  49. {
  50. cout<<"Not a valid Roman numeral!" ;
  51. ok=0;
  52. break;
  53. }
  54. }
  55. cout<<c_arabicp<<endl;
  56. while(f>>c && ok==1)
  57. {
  58. //citesc cifra curenta
  59.  
  60.  
  61. switch( c )
  62. {
  63. case 'M':
  64. c_arabic = M;
  65. break;
  66. case 'D':
  67. c_arabic = D;
  68. break;
  69. case 'C':
  70. c_arabic = C;
  71. break;
  72. case 'L':
  73.  
  74. c_arabic = L;
  75. break;
  76. case 'X':
  77. c_arabic = X;
  78. break;
  79. case 'V':
  80. c_arabic = V;
  81. break;
  82. case 'I':
  83. c_arabic = I;
  84. break;
  85. default:
  86. {
  87. cout<<"Not a valid Roman numeral!" ;
  88. ok=0;
  89. break;
  90. }
  91. }
  92. if(ok)
  93. {
  94.  
  95.  
  96. if(c_arabicp<c_arabic)
  97. nr=nr-c_arabicp;
  98. else
  99. nr=nr+c_arabicp;
  100. c_arabicp=c_arabic;
  101.  
  102. }
  103.  
  104. }
  105.  
  106. if(ok)
  107. {
  108. nr=nr+c_arabicp;
  109. cout<<nr;
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement