Skip to content

Instantly share code, notes, and snippets.

  • Save anonymous/9da3df57bfbaa21a9d00 to your computer and use it in GitHub Desktop.
Save anonymous/9da3df57bfbaa21a9d00 to your computer and use it in GitHub Desktop.

Revisions

  1. @invalid-email-address Anonymous created this gist Nov 25, 2015.
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,34 @@
    // Bonfire: Roman Numeral Converter
    // Author: @piotrjaw
    // Challenge: http://www.freecodecamp.com/challenges/bonfire-roman-numeral-converter?solution=function%20convert(num)%20%7B%0A%20%20var%20map%20%3D%20%5B%20%0A%20%20%20%20%5B1000%2C%20%27M%27%5D%2C%0A%20%20%20%20%5B900%2C%20%27CM%27%5D%2C%0A%20%20%20%20%5B500%2C%20%27D%27%5D%2C%0A%20%20%20%20%5B400%2C%20%27CD%27%5D%2C%0A%20%20%20%20%5B100%2C%20%27C%27%5D%2C%0A%20%20%20%20%5B90%2C%20%27XC%27%5D%2C%0A%20%20%20%20%5B50%2C%20%27L%27%5D%2C%0A%20%20%20%20%5B40%2C%20%27XL%27%5D%2C%0A%20%20%20%20%5B10%2C%20%27X%27%5D%2C%0A%20%20%20%20%5B9%2C%20%27IX%27%5D%2C%0A%20%20%20%20%5B5%2C%20%27V%27%5D%2C%0A%20%20%20%20%5B4%2C%20%27IV%27%5D%2C%0A%20%20%20%20%5B1%2C%20%27I%27%5D%0A%20%20%5D%3B%0A%20%20%0A%20if%20(num%20%3E%200)%20%7B%0A%20%20%20var%20i%20%3D%200%3B%0A%20%20%20while%20(num%20%2F%20map%5Bi%5D%5B0%5D%20%3C%201)%20%7B%0A%20%20%20%20%20i%2B%2B%3B%0A%20%20%20%7D%0A%20%20%20return%20map%5Bi%5D%5B1%5D%20%2B%20convert(num%20-%20map%5Bi%5D%5B0%5D)%3B%0A%20%7D%20else%20%7B%0A%20%20%20return%20%27%27%3B%0A%20%7D%0A%7D%0A%0Aconvert(1)%3B%0A
    // Learn to Code at Free Code Camp (www.freecodecamp.com)

    function convert(num) {
    var map = [
    [1000, 'M'],
    [900, 'CM'],
    [500, 'D'],
    [400, 'CD'],
    [100, 'C'],
    [90, 'XC'],
    [50, 'L'],
    [40, 'XL'],
    [10, 'X'],
    [9, 'IX'],
    [5, 'V'],
    [4, 'IV'],
    [1, 'I']
    ];

    if (num > 0) {
    var i = 0;
    while (num / map[i][0] < 1) {
    i++;
    }
    return map[i][1] + convert(num - map[i][0]);
    } else {
    return '';
    }
    }

    convert(1);