2013年5月18日土曜日

C# で Project Euler に挑戦: Problem 6

問題

二乗和の差

最初の10個の自然数について, その二乗の和は,

12 + 22 + ... + 102 = 385

最初の10個の自然数について, その和の二乗は,

(1 + 2 + ... + 10)2 = 3025

これらの数の差は 3025 - 385 = 2640 となる.

同様にして, 最初の100個の自然数について二乗の和と和の二乗の差を求めよ.

ぼくの解答

static void Main(string[] args)
{
    int n = 100;

    var numbers = Enumerable.Range(1, n);

    var sum = numbers.Sum();
    var sumSquare = sum * sum; // 和の二乗を求めます。
    var squreSum = numbers.Sum(i => i * i); // 二乗数の和を求めます。

    var answer = sumSquare - squreSum;

    Console.WriteLine(answer);
    Console.ReadLine();
}

解説

あまり説明するところがありません... ごく普通に 1 から 100 までの総和の二乗と、二乗の総和を求めています。

この問題はなんか簡単ですね。もっと面白い解き方があるのかな。

0 件のコメント:

コメントを投稿

TFT 10.14 Peeba Comp

こちらのガイドの自分用まとめです。 https://www.reddit.com/r/CompetitiveTFT/comments/hraunp/tft_1014_break_the_meta_new_peeba_comp_set_35/ 難しいですが完成すると非常に強く、プレ...