再帰関数
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で停止します。
再帰には、到達可能な基底ケースと、そこに向かって進むことが必要です。
チャレンジ
中級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))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド