Computer >> Máy Tính >  >> Lập trình >> C ++

Chuyển đổi chữ số La mã sang số thập phân nằm trong khoảng từ 1 đến 3999 trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình chuyển đổi chữ số La Mã sang số thập phân nằm trong khoảng từ 1 đến 3999.

Đối với điều này, chúng tôi sẽ được cung cấp một số la mã ngẫu nhiên. Nhiệm vụ của chúng tôi là chuyển đổi chữ số La Mã đã cho thành số tương đương thập phân của nó.

Ví dụ

#include<bits/stdc++.h>
using namespace std;
//calculating the decimal value
int value(char r){
   if (r == 'I')
   return 1;
   if (r == 'V')
   return 5;
   if (r == 'X')
   return 10;
   if (r == 'L')
   return 50;
   if (r == 'C')
   return 100;
   if (r == 'D')
   return 500;
   if (r == 'M')
   return 1000;
   return -1;
}
//calculating decimal equivalent of given numeral
int convert_decimal(string &str){
   int res = 0;
   for (int i=0; i<str.length(); i++){
      //getting value of digit
      int s1 = value(str[i]);
      if (i+1 < str.length()){
         int s2 = value(str[i+1]);
         if (s1 >= s2){
            res = res + s1;
         }
         else{
            res = res + s2 - s1;
            i++;
         }
      }
      else{
         res = res + s1;
      }
   }
   return res;
}
int main(){
   string str ="MCMIV";
   cout << "Integer form:"
   << convert_decimal(str) << endl;
   return 0;
}

Đầu ra

Integer form:1904