Bonfire Roman Numeral Converter - GJSmith3rd/FreeCodeCamp-BootCamp GitHub Wiki
Contact me
Gilbert Joseph Smith III
Github | FreeCodeCamp | CodePen | LinkedIn | Blog/Site | E-Mail
Details
- Difficulty: 2/5
Convert the given number into a roman numeral.
All roman numerals answers should be provided in upper-case.
Remember to use Read-Search-Ask if you get stuck. Try to pair program. Write your own code.
Useful Links
Problem Script:
function convert(num) {
return num;
}
convert(36);
Problem Explanation:
- You will create a program that converts an integer to a roman numeral.
Hint: 1
- Creating an array with the Roman Numerals and one with the decimal equivalent for the new forms will be very helpful.
Hint: 2
- If you add the numbers that go before the new letter is introduce, it will save you plenty of code, like 4 and 9.
Hint: 3
- You can't have more than three consecutive Roman numerals together.
Spoiler Alert!
Solution ahead!
Code Solution:
var convert = function(num) {
// Create arrays with default conversion with matching indices.
var decimalValue = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000];
var romanNumeral = ['I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M'];
// Create a copy of num to work on and an empty string variable for the final roman number
var numCopy = num;
var romanized = '';
// While the decimal number is greater than 0,
while (numCopy > 0) {
// Loop through the indices of the decimalValue array.
for (var index = 0; index < decimalValue.length; index++) {
// Get the maximum decimal number less or equal then the decimal number.
if (+decimalValue[index] <= numCopy && +decimalValue[+index + 1] > numCopy) {
// Add the Roman numeral & decrease numCopy by the decimal equivalent.
romanized += romanNumeral[index];
numCopy -= decimalValue[index];
}
}
}
return romanized;
};
Code Explanation:
- Read comments on code.