Project Euler 39
- right angle triangle とは直角三角形のこと
p <= 1000
なので、1 辺の長さは 500 まで調べる
using System; using System.Collections.Generic; using System.Linq; class PE039 { static void Main() { const int N = 500; var freq = new Dictionary<int, int>(); for (int i = 1; i < N; i++) { for (int j = i; j < N; j++) { int kk = i*i + j*j; int k = (int)Math.Sqrt(kk); if (k*k == kk && i+j+k <= 1000) { int n = i+j+k; // Console.WriteLine("{0}^2 + {1}^2 = {2}^2", i, j, k); if (!freq.ContainsKey(n)) freq[n] = 0; freq[n]++; } } } Console.WriteLine(freq.OrderBy(e => e.Value).Last()); } }
以下、メモ。
Dictionary
に存在しないキーに対してアクセスすると、KeyNotFoundException
例外となる。