17 lines
316 B
Scala
17 lines
316 B
Scala
import scala.annotation.tailrec
|
|
|
|
def fib(x: Int): Int = if (x == 0 || x == 1) {x} else {
|
|
fib(x - 1) + fib(x - 2)
|
|
}
|
|
|
|
def fibTail(x: Int): Int = {
|
|
@tailrec
|
|
def fibTailStep(x: Int, a: Int, b: Int): Int = {
|
|
if (x == 0) {a}
|
|
else fibTailStep(x - 1, b, a + b)
|
|
}
|
|
fibTailStep(x, 0, 1)
|
|
}
|
|
|
|
fib(10)
|
|
fibTail(10) |