Guest User

Untitled

a guest
Oct 11th, 2011
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.52 KB | None | 0 0
  1. val romanLetters = List("I","V","X","L","C","D","M")
  2.  
  3. def romanDigit(x:Int, pos:Int):String = {
  4.   if(x <= 3) romanLetters(pos) * x else
  5.   if(x == 4) romanLetters(pos) + romanLetters(pos + 1) else
  6.   if(x == 9) romanLetters(pos) + romanLetters(pos + 2) else
  7.   romanLetters(pos + 1) + romanDigit(x-5, pos)
  8. }
  9.  
  10. def romanNumberRec(x:Int, pos:Int, mode:Int):String = {
  11.   if(x == 0) "" else
  12.   romanDigit(x / mode, pos) + romanNumberRec(x % mode, pos - 2, mode / 10)
  13. }
  14.  
  15. def romanNumber(x:Int) = romanNumberRec(x, 6, 1000)
  16.  
  17.  
Advertisement
Add Comment
Please, Sign In to add comment