雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

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 としては)

*1:"There's More Than One Way To Do It." の略。「やり方はひとつじゃない」ってことで、よく Perl のスローガンとして出てくるセンテンス。