Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- object Main {
- trait Problem {
- def solve() = {
- println("Problem "+this.getClass.getSimpleName.replace("$", ":"))
- }
- }
- object one extends Problem {
- override def solve() = {
- super.solve()
- val n = 0 to 1000 - 1
- val x = n.foldLeft(0) {(r, e) => if (e % 3 == 0 || e % 5 == 0) e + r else r}
- println (x)
- }
- }
- object two extends Problem {
- def fibbonacci(l : List[Int]) (selector : List[Int] => Boolean) : List[Int] = {
- val n = l :+ l.takeRight(2).sum
- if (!selector(l))
- l
- else
- fibbonacci(n) {selector}
- }
- override def solve() = {
- super.solve()
- val f = fibbonacci(1 to 2 toList) {n : List[Int] => n.last <= 4000000}
- println(f.foldLeft(0) {(r, e) => if (e % 2 == 0) e + r else r})
- }
- }
- object three extends Problem {
- override def solve() = {
- super.solve()
- }
- }
- def main(args: Array[String]) : Unit = {
- val problems : List[Problem] = List(one, two, three)
- problems.foreach { x => x.solve() }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement