using System; using System.Linq; public class Program { public static void Main() { const int N = 5, K = 3; // 1 represents +, 0 represents - var results = Enumerable.Range(0, 1 << N) .Select(bits => { var permutation = Enumerable.Range(0, N) .Select(n => ((bits & (1 << n)) != 0) ? (n + 1) : -(n + 1)) .ToList(); var sum = permutation.Sum(); var str = string.Join(" + ", permutation); return new {sum, str}; }) .Where(intermediate => intermediate.sum == K) .Select(intermediate => $"{intermediate.str} = {K}"); Console.WriteLine(string.Join("\n", results)); } }