문제 내용
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
예제 입력 | 예제 출력 |
10 | 3628800 |
0 | 1 |
문제 풀이
첫번째 풀이
기본적인 재귀를 활용한 풀이이다. 문제 조건대로 출력하면 된다.
두번째 풀이
dp를 활용한 풀이이다.
</>̆̈ 코드
// 재귀를 이용한 풀이
fun main() {
println(factorial(readLine()!!.toInt()))
}
fun factorial(number: Int): Int {
return if (number in 0..1) 1
else factorial(number-1) * number
}
// DP를 활용한 풀이
fun main() {
println(factorial(readLine()!!.toInt()))
}
fun factorial(number: Int): Int {
val array = IntArray(number+1){1}
for (i in 1..number) array[i] = array[i-1] * i
return array[number]
}
링크