33,008
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
public class program
{
private static void Main()
{
int N = Int32.Parse(Console.ReadLine());
int[] items = new int[N];
for (int i = 0; i < N; i++)
items[i] = i;
//排个序,为了方便剪枝
Array.Sort(items);
int max = items[items.Length - 1];
int count = 0,sum;
//弄个hash表,做解的快速判断
Dictionary<int, int> hash = new Dictionary<int, int>();
for (int i = 0; i < N; i++)
hash.Add(i, 1);
//枚举元素,统计解的个数
for (int i = 0; i < N - 1; i++)
{
for (int j = i + 1; j < N; j++)
{
sum = items[i] + items[j];
if(sum > max)
break;
if (hash.ContainsKey(sum))
count++;
}
}
}
}