그냥저냥

Functional Programming in Scala 연습문제 2.1 본문

개발기

Functional Programming in Scala 연습문제 2.1

sync86 2025. 10. 12. 07:10
728x90
반응형

연습문제 2.1

n번째 피보나치 수(Fibonacci number: https://en.wikipedia.org/wiki/Fibonacci_sequence)를 돌려주는 재귀 함수를 작성하라. 처음 두 피보나치 수는 0과 1이다. n번째 피보나치 수는 항상 이전 두 수의 합이다. 즉, 피보나치수열은 0, 1, 1, 2, 3, 5로 시작한다. 반드시 지역 꼬리 재귀 함수를 사용해서 작성할 것.

  def fib(n: Int): Int
object Fib {
  def fib(n: Int): Int = {
    def redo(n: Int, current: Int, next: Int): Int =
      if (n <= 0) current
      else redo((n - 1), next, (current + next))

    redo(n, 0, 1)
  }

  def main(args: Array[String]): Unit = {
    println("Fib(0) -> " + fib(0));
    println("Fib(1) -> " + fib(1));
    println("Fib(2) -> " + fib(2));
    println("Fib(3) -> " + fib(3));
    println("Fib(4) -> " + fib(4));
    println("Fib(5) -> " + fib(5));
  }
}

 

728x90
반응형