Skip to content

Instantly share code, notes, and snippets.

@kovek
Created January 20, 2013 04:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kovek/4576731 to your computer and use it in GitHub Desktop.
Save kovek/4576731 to your computer and use it in GitHub Desktop.
n=[]
n['M'] = 1000
n['CM'] = 900
n['D'] = 500
n['CD'] = 400
n['C'] = 100
n['XC'] = 90
n['L'] = 50
n['XL'] = 40
n['X'] = 10
n['IX'] = 9
n['V'] = 5
n['IV'] = 4
n['I'] = 1
addroman =( first, second) ->
first1 = analyse(first)
second2 = analyse(second)
result = first1 + second2
result
romanThis = (value) ->
out = ""
for index, val of n
while value >= val
debugger;
value -= val
out+= index
debugger;
out
analyse = (number) ->
out = 0
previous = 0
for i in [0...number.length]
o = number.length - i
numb = n[number.charAt(o-1)];
if(previous<numb)
out = out + numb
previousStreak = false
else if(previous==numb)
if previousStreak is true
out = out - numb
else
out = out + numb
else
previousStreak = true
out = out - numb
previous = numb
out
console.log romanThis( addroman("CCCLXIX", "CDXLVIII") )
console.log romanThis(9)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment