スピーカ1:の最後のバージョンで シグマ、私が呼ぶようなものに実装 私が使用したことにより、反復解法、 フォワードループは、すべてをカウントアップ その後1とMの間の数字 合計を返す。 しかし、それは我々が別のものを使用することができますが判明 同じ技術を実装する 機能、技術 再帰として知られている。 再帰関数、いわば、 単純に自分自身を呼び出すものです。 今、それ自体は、その 問題になるかもしれません。 関数は単にそれ自体を呼び出す場合 自分自身を呼び出す自分自身を呼び出す、 そのプロセスは終了し、これまでボットかもしれません。 しかし、長い間、我々には、いわゆる 基本ケース、確実に条件 いくつかの状況で、我々は呼び出すことはありませんことを 自分自身、そうでない場合の、そのプロセス 無限ループを止めるべき。 それでは、再実装しましょう 次のようにシグマ。 nが0以下であれば、私は今 単純に、やや恣意、 0を返すつもり。 他に何私がやろうとしてたんだけど、実際には 正のintのためにシグマを計算する 私は、受け継がれてきたこと。 今、Mのシグマは何ですか? さて、Mのシグマは、もちろんですが、 mまでの1までの合計。 しかし、我々はそれについて、他の方法を考えている場合、 単にメートルプラスmの合計の マイナス1プラスMマイナス2など、 ずっと1まで。 だから、そういう意味では、と思われる 私は単にMプラスを返すことができます。 そして私は、Mのマイナスが必要です 1プラスMマイナス2。 しかし、私は与えることができます機能を持っている 私正確にその答え、すなわち、 Mマイナス1シグマ。 さて、このように自分自身を呼び出していません 最高のアイデアのように思える。 シグマはシグマを呼び出す場合呼び出すので、 シグマを呼び出しシグマは、 このプロセスと思うだろう これまでに終了しない場合があります。 我々は、いわゆるベースを持っていた理由が、それはだ この関数の先頭にある場合。 mがある場合にチェックするif条件 私はつもりはない0以下 自分自身を呼び出すことができます。 私の代わりに、0を返すつもりだどの 順次に追加されようとしている 私が合算されてきた以前の番号 それによってこれを停止させる、アップ そうでなければ無限のプロセス。 それでは見てみましょう場合は、この新しい 実装が動作します。 コンパイルの保存しましょう​​、と このプログラムを実行する。 シグマ1ドットを作るシグマ1を大幅に削減する。 とのはそれを提供してみましょう 前と同じ番号。 うまくいけば、私に3を与える必要があります2。 それでは、3でそれを提供してみましょうどの うまくいけば、私に6を与える必要があります。 とのは最終的にそれを提供しましょう 確かに私に1275を与え50、。