Decimal to Roman Numeral Conversion

Thu, May 21, 2009

C++, Snippets

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <string>
using namespace std;

string dec_to_numeral(int x) {
    int dec[13] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
    string num[13] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
    string numeral;

    for(int i = 0; i < 13; i++) {
        while (x >= dec[i]) {
            x -= dec[i];
            numeral.append(num[i]);
        }
    }

    return numeral;
}

int main() {
    //example
    cout << dec_to_numeral(400);

    return 0;
}

Tags: , , ,