요구능력 : 재귀함수를 쓸줄아느냐
코드설명 : 숫자를 받아서 for문으로 돌렸따..
후기 : 단원명이 재귀함수인데 for문을 써서 풀다니... 뭔가 이상해서 구글링 해봤는데 대부분 재귀함수로 풀었더라.. 1학년 C언어 배울때 공부했던 기억이...
let N = Int(readLine()!)!
var result = 1
factorial(N)
func factorial(_ N:Int) {
if N == 0 {
print("\(result)")
return
}
for i in 1...N {
result = result * i
}
print("\(result)")
}
코드설명 : 간단해서 따로 할 필요는 없을거 같고,,
재귀함수는 함수안에서 같은 함수를 재귀적으로 호출하는거다.
예를들어 아래 코드에서 N이 5이면
5 * factorial(4)
5 * 4 * factorial(3)
5 * 4 * 3 * factorial(2)
5 * 4 * 3 * 2 * factorial(1)
5 * 4 * 3 * 2 * 1 * factorial(0)
5 * 4 * 3 * 2 * 1 * 1
이런식으로 진행된다.
후기 : 이거 꼬아서 내면 되게 복잡할거같다.
let N = Int(readLine()!)!
print("\(factorial(N))")
func factorial(_ N:Int) -> Int {
if N == 0 {
return 1
}
return N * factorial(N - 1)
}
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
Swift) 백준 2447번(분할정복) (0) | 2021.08.03 |
---|---|
Swift) 백준 10870번 (0) | 2021.08.02 |
Swift) 백준 1316번 (0) | 2021.07.31 |
Swift) 백준 2941번 (0) | 2021.07.29 |
Swift) 백준 2908번 (0) | 2021.07.29 |
댓글