1 から 10 までを足してみる
折角なのでこちらもやってみます。
TMTOWTDI*1 の実践。要は頭の体操です。
(ループを使った一般的なものは省略)
static void Main() { Console.WriteLine(S(10)); } static int S(int n) { return n * (n + 1) / 2; }
……まぁ、よく知られた公式をそのまま使っちゃえってやつですね。
ってか、この程度のものであれば、 1 から 10 までの順列を作ってループさせるより、こっちの方がよっぽど早い気がする。
ついでにもうひとつ。
static void Main() { Console.WriteLine(S(10)); } static int S(int k) { if (k == 1) { return 1; } return S(k - 1) + k; }
漸化式の考え方を使って再帰でやってみた方法です。
効率が良い方法とは言えませんが、こう云う実装も出来る、と云う事が重要なのです。( TMTOWTDI としては)