View Problem
Replacing a conditional with many branches with a switch/case statement
Many languages support more compact forms of branching than just if ... then ... else such as switch or case or match. Use such a form to add an appropriate placing suffix to the numbers 1..40, e.g. 1st, 2nd, 3rd, 4th, ..., 11th, 12th, ... 39th, 40th
Submit a new solution for scala
There are 9 other solutions in additional languages (cpp, erlang, fsharp, groovy ...)
scala
object FourToTwenties {
def unapply (n: Int) = (4 to 20).contains(n % 100)
}
def suffix (n: Int) = {
n match {
case FourToTwenties() => "th"
case n if n % 10 == 1 => "st"
case n if n % 10 == 2 => "nd"
case n if n % 10 == 3 => "rd"
case _ => "th"
}
}
for (n <- 1 to 40) {
println(n.toString + suffix(n))
}
def unapply (n: Int) = (4 to 20).contains(n % 100)
}
def suffix (n: Int) = {
n match {
case FourToTwenties() => "th"
case n if n % 10 == 1 => "st"
case n if n % 10 == 2 => "nd"
case n if n % 10 == 3 => "rd"
case _ => "th"
}
}
for (n <- 1 to 40) {
println(n.toString + suffix(n))
}
Submit a new solution for scala
There are 9 other solutions in additional languages (cpp, erlang, fsharp, groovy ...)




