[알고리즘] 백준 10870번 : 피보나치 수 5 (Kotlin)

www.acmicpc.net/problem/10870

 

10870번: 피보나치 수 5

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

 

1. 재귀

  
  fun main() {
      val br = BufferedReader(InputStreamReader(System.`in`))
      val input = br.readLine().toInt()
      print(fibonacci(input))
  }

  fun fibonacci(N: Int): Int {
      return if (N < 2) N else fibonacci(N - 1) + fibonacci(N - 2)
  }

  //fun fibonacci(N: Int): Int = when (N) {	//코틀린스럽게
  //    0 -> 0
  //    1 -> 1
  //    else -> fibonacci(N - 1) + fibonacci(N - 2)
  //}
  

 

2. 배열

  
  fun main() {
      val br = BufferedReader(InputStreamReader(System.`in`))
      val input: Int = br.readLine().toInt()
      val fibonacci = IntArray(input + 1)

      for (i in fibonacci.indices) {
          when (i) {
              0 -> fibonacci[0] = 0
              1 -> fibonacci[1] = 1
              else -> fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]
          }
      }
      print(fibonacci[input])
  }
  

댓글