Diana의 iOS 개발일기

[백준 swift] 재귀 - 10872번, 10870번 본문

알고리즘/백준

[백준 swift] 재귀 - 10872번, 10870번

Diana_iOS 2021. 4. 13. 16:48

10872번 - 팩토리얼

import Foundation

let num = Int(readLine()!)!

func calculate (num : Int) -> Int {
    if num == 0 {
        return 1
    }
    return num * calculate(num: num - 1)
}

print(calculate(num: num))

10870번 - 피보나치수 5

import Foundation

var num = Int(readLine()!)!

func fibonacci(x : Int) -> Int {
    if x == 0 {
        return 0
    } else if x == 1 {
        return 1
    }
    var result = fibonacci(x: x-1) + fibonacci(x: x-2)
    return result
}

print(fibonacci(x: num))

재귀함수는 탈출조건이 반드시 존재해야 하므로 탈출을 언제할지 정하고,

해당 문제에서 반복되는 패턴은 앞의 수와 뒤의 수를 더해 그 다음 수를 정하는 것이므로 이에 유의하여 문제를 푼다.