[알고리즘] 백준 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])
      }
      

    댓글