재귀 함수
Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 44번째.
재귀 함수는 더 작은 하위 문제에 대해 자기 자신을 호출합니다. 기저 사례는 또 다른 재귀 호출 없이 반환합니다. 카운트다운 합계에서는 0이 기저 사례이고 n - 1은 기저 사례에 더 가까워지게 합니다. 일반적인 재귀는 호출 스택 공간을 사용하므로 입력 깊이를 작게 유지하세요.
fun countdownSum(n: Int): Int {
if (n == 0) return 0
return n + countdownSum(n - 1)
}main 내부:
println(countdownSum(4))호출은 4, 3, 2, 1을 더한 다음 0에서 중지됩니다.
재귀에는 도달 가능한 기본 사례와 그 사례를 향한 진행이 필요합니다.
챌린지
중급recursiveSum을 number: Int 매개변수로 완성하세요. 재귀를 사용하여 1부터 number까지의 합을 반환하세요. number는 0에서 100 사이입니다. 0에 대한 결과는 0입니다.
위에 더 엄격한 범위가 명시되지 않은 경우, 각 수준의 컬렉션에는 최대 100개의 요소가 포함되며, 정수 인수와 정수 컬렉션 값은 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 대로 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.
Int 유형의 값을 반환하세요. 제공된 입력/출력 코드를 그대로 유지하세요. 이 코드는 스칼라 인수를 한 줄에 하나씩 읽습니다. 리스트는 개수와 그 뒤에 오는 요소로 시작하고, 맵은 항목 개수와 그 뒤에 오는 각 키와 값으로 시작합니다. 중첩 리스트에서는 각 행마다 개수와 요소 형식을 반복합니다. 제공된 main은 반환 값을 출력한 다음 줄바꿈 하나를 출력합니다. 리스트는 Kotlin의 표준 대괄호 형식을 사용합니다. 추가 레이블은 출력하지 마세요.
직접 해보기
fun recursiveSum(number: Int): Int {
// 여기에 솔루션을 작성하세요.
return 0
}
fun main() {
val number = readln().toInt()
println(recursiveSum(number))
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드