LINUX.ORG.RU

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

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

В любом случае там достаточно долгая раскрутка стека, даже при малых значениях входного параметра.

Смотри как делал я (писал на Scala, поправишь для Питона сам):

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

Исправление LongLiveUbuntu, :

В любом случае там достаточно долгая раскрутка стека, даже при малых значениях входного параметра.

Смотри как делал я (писал на Scala, поправишь для Питона сам):

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, acc = comp1 + comp2, n - 1)
    }
    runFibonacci(0, 1, 1, n)
  }

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

В любом случае там достаточно долгая раскрутка стека, даже при малых значениях входного параметра.

Смотри как делал я (писал на Scala, поправишь для Питона сам):

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)
  }