Menu
Coddy logo textTech

再帰関数

CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 44/63。

再帰関数は、より小さな部分問題に対して自分自身を呼び出します。基底ケースでは、別の再帰呼び出しを行わずに戻ります。カウントダウンの合計では、ゼロが基底ケースであり、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で停止します。

再帰には、到達可能な基底ケースと、そこに向かって進むことが必要です。

challenge icon

チャレンジ

中級

number: Int パラメータを持つ recursiveSum を完成させてください。再帰を使用して、1 から number までの合計を返してください。number は 0 から 100 の範囲です。0 の結果は 0 です。

上記でより厳しい範囲が指定されていない限り、コレクションは各レベルで最大 100 個の要素を含み、整数の引数および整数コレクションの値は -1000 から 1000 の範囲です。パース対象として提供されるテキストには、説明にあるとおり、無効な表現や範囲外の表現が含まれる場合があります。

型 Int の値を返してください。提供された入力/出力コードはそのまま使用してください。スカラー引数は 1 行に 1 つずつ読み取られます。リストは要素数に続いて各要素が配置され、マップはエントリ数に続いて各キーと値が配置されます。ネストされたリストでは、各行について要素数と要素の形式が繰り返されます。提供された main は、戻り値の後に改行を 1 つ出力します。リストには Kotlin の標準的な角括弧形式を使用し、追加のラベルは出力しないでください。

自分で試してみよう

fun recursiveSum(number: Int): Int {
    // ここに解答を書いてください。
    return 0
}
fun main() {
    val number = readln().toInt()
    println(recursiveSum(number))
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド