-
Notifications
You must be signed in to change notification settings - Fork 340
Bonfire Roman Numeral Converter
Rafael J. Rodriguez edited this page Jan 6, 2017
·
2 revisions
Created by Rafase282
Github | FreeCodeCamp | CodePen | LinkedIn | Website | E-Mail
- 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.
function convert(num) {
return num;
}
convert(36);
- You will create a program that converts an integer to a roman numeral.
- Creating an array with the Roman Numerals and one with the decimal equivalent for the new forms will be very helpful.
- If you add the numbers that go before the new letter is introduce, it will save you plenty of code, like 4 and 9.
- You can't have more than three consecutive Roman numerals together.
Solution ahead!
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;
};
- Read comments on code.
Thanks for visiting, if you like this please feel free to star my repo, follow me or even contact me about contributing as it will be a lot of work and having help would be cool.
- HTML5 and CSS
- Responsive Design with Bootstrap
- Gear up for Success
- jQuery
- Basic JavaScript
- Object Oriented and Functional Programming
- Basic Algorithm Scripting
- Basic Front End Development Projects
- Intermediate Algorithm Scripting
- JSON APIs and Ajax
- Intermediate Front End Development Projects
- Claim Your Front End Development Certificate
- Upper Intermediate Algorithm Scripting
- Automated Testing and Debugging
- Advanced Algorithm Scripting
- AngularJS (Legacy Material)
- Git
- Node.js and Express.js
- MongoDB
- API Projects
- Dynamic Web Applications
- Claim Your Back End Development Certificate
- Greefield Nonprofit Project 1
- Greefield Nonprofit Project 2
- Legacy Nonprofit Project 1
- Legacy Nonprofit Project 2
- Claim your Full Stack Development Certification
- Whiteboard Coding Interview Training
- Critical Thinking Interview Training
- Mock Interview 1
- Mock Interview 2
- Mock Interview 3