재귀

인생노잼시기·2021년 6월 3일
0

😨코딩테스트

목록 보기
10/18

10872

10872
팩토리얼

let n = Int(readLine()!)!

func factorial(_ val: Int) -> Int {
    if val == 0 {
        return 1
    }
    
    return val * factorial(val-1)
}

print(factorial(n))

10870

10870
피보나치

let n = Int(readLine()!)!

func fibonacci(_ val: Int) ->Int {
    if val == 0 {
        return 0
    } else if val == 1 {
        return 1
    }
    return fibonacci(val-1) + fibonacci(val-2)
}

print(fibonacci(n))

2447

2447
별찍기
배열의 크기가 정해진 배열이어야 한다
그렇지 않으면...

***
*
***

이렇게 왼쪽으로 별이 밀린다
크기가 정해진 2차원 배열 초기화하는 방법:

[[String]](repeating: [String](repeating: "*", count: 3),count: 3)
[[String]](repeating: Array(repeating: "*", count: 3),count: 3)
// [["*", "*", "*"], ["*", "*", "*"], ["*", "*", "*"]]
import Foundation

let number = Int(readLine()!)!
var starArr = [[String]](repeating: [String](repeating: "*", count: number), count: number)

var n = number
while n > 1 {
    for i in 0 ..< number {
        for j in 0 ..< number {
            if i%3==1 && j%3==1 {
                starArr[i][j] = " "
            }
        }
    }
    n /= 3
}

print(starArr)


["*", "*", "*", "*", "*", "*", "*", "*", "*"]
["*", " ", "*", "*", " ", "*", "*", " ", "*"]
["*", "*", "*", "*", "*", "*", "*", "*", "*"]
["*", "*", "*", "*", "*", "*", "*", "*", "*"]
["*", " ", "*", "*", " ", "*", "*", " ", "*"]
["*", "*", "*", "*", "*", "*", "*", "*", "*"]
["*", "*", "*", "*", "*", "*", "*", "*", "*"]
["*", " ", "*", "*", " ", "*", "*", " ", "*"]
["*", "*", "*", "*", "*", "*", "*", "*", "*"]

모루게따ㅠㅠ

profile
인생노잼

0개의 댓글