anubhav_c

Roman to Decimal converter

Jan 28th, 2013
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. /*  Simple & correct program by Aakash Jain.
  2.     Compare http://pastebin.com/9HxVCszK
  3. */
  4.  
  5. #include<iostream>
  6. #include<ctype.h>
  7. using namespace std;
  8.  
  9. int val (char c)
  10. {
  11.         int temp=0;
  12.         switch (toupper(c))
  13.         {
  14.                 case 'I': temp=1; break;
  15.                 case 'V': temp=5; break;
  16.                 case 'X': temp=10; break;
  17.                 case 'L': temp=50; break;
  18.                 case 'C': temp=100; break;
  19.                 case 'D': temp=500; break;
  20.                 case 'M': temp=1000; break;
  21.                 default : temp=0;
  22.         }
  23.         return temp;
  24. }
  25.  
  26. int main()
  27. {
  28.         char roman[10]={0};
  29.         int ans=0;
  30.         int temp=0;
  31.         cin>>roman;
  32.         for (int i=0; roman[i] != '\0'; i++)
  33.         {
  34.                 temp=val(roman[i]);
  35.                 if (temp==0)
  36.                 {
  37.                         cout<<"Invalid input"<<endl;
  38.                         return 1;
  39.                 }
  40.                 if (temp>=val(roman[i+1]))
  41.                         ans+=temp;
  42.                 else
  43.                         ans-=temp;
  44.         }
  45.         cout<<ans<<endl;
  46.         return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment