//Devin Scheu CS1A Chapter 4, P. 220, #2
//
/**************************************************************
*
* CONVERT NUMBER TO ROMAN NUMERAL
* ____________________________________________________________
* This program asks for a number between 1 and 10
* and displays its Roman numeral equivalent.
*
* Computation is based on a switch statement mapping numbers to
* Roman numerals: 1=I, 2=II, 3=III, 4=IV, 5=V, 6=VI, 7=VII,
* 8=VIII, 9=IX, 10=X
* ____________________________________________________________
* INPUT
* number : The number to convert (as an integer)
*
* OUTPUT
* romanNumeral : The Roman numeral equivalent of the input number
*
**************************************************************/
#include <iostream>
#include <iomanip>
using namespace std;
int main () {
//Variable Declarations
int number; //INPUT - The number to convert (as an integer)
string romanNumeral; //OUTPUT - The Roman numeral equivalent of the input number
//Prompt for Input
cout << "Enter a number between 1 and 10: ";
cin >> number;
//Input Validation and Conversion
if (number < 1 || number > 10) {
romanNumeral = "Invalid input";
} else {
switch (number) {
case 1:
romanNumeral = "I";
break;
case 2:
romanNumeral = "II";
break;
case 3:
romanNumeral = "III";
break;
case 4:
romanNumeral = "IV";
break;
case 5:
romanNumeral = "V";
break;
case 6:
romanNumeral = "VI";
break;
case 7:
romanNumeral = "VII";
break;
case 8:
romanNumeral = "VIII";
break;
case 9:
romanNumeral = "IX";
break;
case 10:
romanNumeral = "X";
break;
}
}
//Output Result
cout << "\n";
cout << left << setw(25) << "Entered Number:" << right << setw(15) << number << endl;
cout << left << setw(25) << "Roman Numeral:" << right << setw(15) << romanNumeral << endl;
} //end of main()
Ly9EZXZpbiBTY2hldSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcHRlciA0LCBQLiAyMjAsICMyCi8vCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqCiogQ09OVkVSVCBOVU1CRVIgVE8gUk9NQU4gTlVNRVJBTAoqIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoqIFRoaXMgcHJvZ3JhbSBhc2tzIGZvciBhIG51bWJlciBiZXR3ZWVuIDEgYW5kIDEwCiogYW5kIGRpc3BsYXlzIGl0cyBSb21hbiBudW1lcmFsIGVxdWl2YWxlbnQuCioKKiBDb21wdXRhdGlvbiBpcyBiYXNlZCBvbiBhIHN3aXRjaCBzdGF0ZW1lbnQgbWFwcGluZyBudW1iZXJzIHRvCiogUm9tYW4gbnVtZXJhbHM6IDE9SSwgMj1JSSwgMz1JSUksIDQ9SVYsIDU9ViwgNj1WSSwgNz1WSUksCiogOD1WSUlJLCA5PUlYLCAxMD1YCiogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiogSU5QVVQKKiBudW1iZXIgOiBUaGUgbnVtYmVyIHRvIGNvbnZlcnQgKGFzIGFuIGludGVnZXIpCioKKiBPVVRQVVQKKiByb21hbk51bWVyYWwgOiBUaGUgUm9tYW4gbnVtZXJhbCBlcXVpdmFsZW50IG9mIHRoZSBpbnB1dCBudW1iZXIKKgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGlvbWFuaXA+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4gKCkgewoJCgkvL1ZhcmlhYmxlIERlY2xhcmF0aW9ucwoJaW50IG51bWJlcjsgICAgICAgICAvL0lOUFVUICAgICAgLSBUaGUgbnVtYmVyIHRvIGNvbnZlcnQgKGFzIGFuIGludGVnZXIpCglzdHJpbmcgcm9tYW5OdW1lcmFsOyAvL09VVFBVVCAgICAgLSBUaGUgUm9tYW4gbnVtZXJhbCBlcXVpdmFsZW50IG9mIHRoZSBpbnB1dCBudW1iZXIKCgkvL1Byb21wdCBmb3IgSW5wdXQKCWNvdXQgPDwgIkVudGVyIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgMTA6ICI7CgljaW4gPj4gbnVtYmVyOwoJCgkvL0lucHV0IFZhbGlkYXRpb24gYW5kIENvbnZlcnNpb24KCWlmIChudW1iZXIgPCAxIHx8IG51bWJlciA+IDEwKSB7CgkJcm9tYW5OdW1lcmFsID0gIkludmFsaWQgaW5wdXQiOwoJfSBlbHNlIHsKCQlzd2l0Y2ggKG51bWJlcikgewoJCQljYXNlIDE6CgkJCQlyb21hbk51bWVyYWwgPSAiSSI7CgkJCQlicmVhazsKCQkJY2FzZSAyOgoJCQkJcm9tYW5OdW1lcmFsID0gIklJIjsKCQkJCWJyZWFrOwoJCQljYXNlIDM6CgkJCQlyb21hbk51bWVyYWwgPSAiSUlJIjsKCQkJCWJyZWFrOwoJCQljYXNlIDQ6CgkJCQlyb21hbk51bWVyYWwgPSAiSVYiOwoJCQkJYnJlYWs7CgkJCWNhc2UgNToKCQkJCXJvbWFuTnVtZXJhbCA9ICJWIjsKCQkJCWJyZWFrOwoJCQljYXNlIDY6CgkJCQlyb21hbk51bWVyYWwgPSAiVkkiOwoJCQkJYnJlYWs7CgkJCWNhc2UgNzoKCQkJCXJvbWFuTnVtZXJhbCA9ICJWSUkiOwoJCQkJYnJlYWs7CgkJCWNhc2UgODoKCQkJCXJvbWFuTnVtZXJhbCA9ICJWSUlJIjsKCQkJCWJyZWFrOwoJCQljYXNlIDk6CgkJCQlyb21hbk51bWVyYWwgPSAiSVgiOwoJCQkJYnJlYWs7CgkJCWNhc2UgMTA6CgkJCQlyb21hbk51bWVyYWwgPSAiWCI7CgkJCQlicmVhazsKCQl9Cgl9CgkKCS8vT3V0cHV0IFJlc3VsdAoJY291dCA8PCAiXG4iOwoJY291dCA8PCBsZWZ0IDw8IHNldHcoMjUpIDw8ICJFbnRlcmVkIE51bWJlcjoiIDw8IHJpZ2h0IDw8IHNldHcoMTUpIDw8IG51bWJlciA8PCBlbmRsOwoJY291dCA8PCBsZWZ0IDw8IHNldHcoMjUpIDw8ICJSb21hbiBOdW1lcmFsOiIgPDwgcmlnaHQgPDwgc2V0dygxNSkgPDwgcm9tYW5OdW1lcmFsIDw8IGVuZGw7CgkKfSAvL2VuZCBvZiBtYWluKCk=