История изменений
Исправление 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)
}