LINUX.ORG.RU

История изменений

Исправление LongLiveUbuntu, (текущая версия) :

А если так?

import annotation.tailrec

def fibbonacci(n: Int): Int = {
  @tailrec
  def runFibonacci(comp1: Int, comp2: Int, acc: Int, n: Int) : Int = n match {
    case 0 | 1 => acc
    case _ =>
      runFibonacci(comp2, comp1 + comp2, comp1 + comp2, n - 1)
  }
  runFibonacci(0, 1, 1, n)
}


val result = fibbonacci(60)
Console.println(s"result = ${result}")

Исходная версия LongLiveUbuntu, :

А если так?

import annotation.tailrec

def fibbonacci(n: Int): Int = {
  @tailrec
  def runFibonacci(comp1: Int, comp2: Int, acc: Int, n: Int) : Int = n match {
    case 1 => acc
    case _ =>
      runFibonacci(comp2, comp1 + comp2, comp1 + comp2, n - 1)
  }
  runFibonacci(0, 1, 1, n)
}


val result = fibbonacci(60)
Console.println(s"result = ${result}")