Quick actions

cmd+k|ctrl+k

Navigation

Languages

Pascal

Snippet info

Language

Scala

Visibility

public

Author

ikhoon

Created

2016-04-23T00:02:42Z

Updated

2016-04-23T00:08:50Z

object Main extends App {

  def pascal(prev: List[Int], until: Int): Unit = {
    if (until == 0) ()
    else {
      val now = if (prev.isEmpty) 1 :: prev else (0 to prev.size).map(number(_, prev)).toList
      println(now.mkString(" "))
      pascal(now, until - 1)
    }
  }
  
  def number(pos : Int, prev: List[Int]) : Int = {
    val left = if(prev.isDefinedAt(pos - 1)) prev(pos - 1) else 0
    val right = if(prev.isDefinedAt(pos)) prev(pos) else 0
    left + right
  }
  
 def f(n: Int): Unit = {
    pascal(Nil, n)
  }

  (3 to 7).foreach { i =>
    f(i)
    println()
  }
}
INFO