基礎プログラミング II 第 6 回 (目的に応じて使ってみよう) 「続・ガウスくんとルビ緒」 講義ノート目次

第三問目である。「1 から 99 までの奇数を足した答えは何か?」

ガウスくんは 「1 から 100 まで足したものから、 2 から 100 までの偶数を引いたものですね。先程の計算から 1 から 100 までの和は 5050 で、1 から 50 までの和は 51 が 25 個あるものが 2 倍されていると数えることができますから、 2 かける 51 かける 25」 と黒板に書き出した。

    1 + 2 + 3 + 4 + .... + 97 + 98 + 99 + 100
 -(     2     + 4             + 98 +    + 100)

=   5050 
  -2 (  1     + 2 + .... +      49 +       50) 

=   5050 - 2 * 51 * 25 

言葉を続けるガウスくんは、

5050 - 2550 = 2500

「答えは 2500 です。」

一方ルビ緒は、プログラムを作った。method には step もある。飛び飛びに計算してくれるのである。

開始する値.step(終了したい値[, 増える間隔]) do |変数|
 変数の処理
end

これを用いて、step_addition_odd.rb を作成した。 ルビ緒の答えも 2500 と出るだろうか?