問題:1からnまでの整数を二つの組に分けて合計した結果が同じだった2番目と3番目を出力する。
public void nまでの整数を二つの組に分けて合計した結果が同じだった2番目と3番目() { //Enumerable.Select().Sum()は使わない方向で Func<int, int, int> xからyまでの計 = (int x, int y) => ((x + y) * ((y - x + 1) / 2)) + (((y + x) / 2) * ((y - x + 1) % 2)); Func<int, bool> nまでの数字を二つの組に分けて合計した結果が同じ = (int n) => Enumerable.Range(n / 2, n - (n / 2)) .Where(分ける数字 => xからyまでの計(1, 分ける数字) == xからyまでの計(分ける数字 + 1, n)) .Select(x => x).Count() > 0; int[] 該当するnのリスト = Enumerable.Range(2, int.MaxValue - 2).Where(n => nまでの数字を二つの組に分けて合計した結果が同じ(n)) .Select(n => n) .Take(3).ToArray(); Console.WriteLine("no2:{0},no3:{1}", 該当するnのリスト[1], 該当するnのリスト[2]); }