scala> def fibonacci( n: Int): Int = n match { | case 0 => 0 | case 1 => 1 | case _ => fibonacci(n -1) + fibonacci(n - 2) | } fibonacci: (n: Int)Int scala> fibonacci(10) res0: Int = 55 //原有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到三个月后每个月又生一对,问20个月以后共有多少兔子 def tuziAddMonth(tuzi:Map[Int,Int])={ val c=tuzi.map (x=>(x._1+1)->x._2) var value=0 c.foreach(x=>if(x._1>2) value+=x._2 else value+=0) c+(0->value) } def main(args: Array[String]) = { var tuzi = Map(0 -> 1, 1 -> 0, 2 -> 0) for(i <- 1 to 20){ tuzi=tuziAddMonth(tuzi) var value=0 tuzi.foreach(value+=_._2) println("month "+i+" tuzi: "+value) } }