Advertisement
Guest User

Untitled

a guest
May 11th, 2015
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.08 KB | None | 0 0
  1. object Main {
  2.  
  3.   trait Problem {
  4.     def solve() = {
  5.       println("Problem "+this.getClass.getSimpleName.replace("$", ":"))
  6.     }
  7.   }
  8.  
  9.   object one extends Problem {
  10.     override def solve() = {
  11.       super.solve()
  12.       val n = 0 to 1000 - 1
  13.       val x = n.foldLeft(0) {(r, e) => if (e % 3 == 0 || e % 5 == 0) e + r else r}
  14.       println (x)
  15.     }
  16.   }
  17.  
  18.   object two extends Problem {
  19.     def fibbonacci(l : List[Int]) (selector : List[Int] => Boolean) : List[Int] = {
  20.       val n = l :+ l.takeRight(2).sum
  21.       if (!selector(l))
  22.         l
  23.       else
  24.         fibbonacci(n) {selector}
  25.     }
  26.    
  27.     override def solve() = {
  28.       super.solve()
  29.       val f = fibbonacci(1 to 2 toList) {n : List[Int] => n.last <= 4000000}
  30.       println(f.foldLeft(0) {(r, e) => if (e % 2 == 0) e + r else r})
  31.     }
  32.   }
  33.  
  34.   object three extends Problem {
  35.     override def solve() = {
  36.       super.solve()
  37.      
  38.     }
  39.   }
  40.  
  41.   def main(args: Array[String]) : Unit = {
  42.     val problems : List[Problem] = List(one, two, three)
  43.     problems.foreach { x => x.solve() }
  44.   }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement