fork download
  1. using System;
  2. using System.Linq;
  3.  
  4. public class Program
  5. {
  6. public static void Main()
  7. {
  8. const int N = 5, K = 3;
  9.  
  10. // 1 represents +, 0 represents -
  11. var results =
  12. Enumerable.Range(0, 1 << N)
  13. .Select(bits =>
  14. {
  15. var permutation =
  16. Enumerable.Range(0, N)
  17. .Select(n => ((bits & (1 << n)) != 0) ? (n + 1) : -(n + 1))
  18. .ToList();
  19.  
  20. var sum = permutation.Sum();
  21. var str = string.Join(" + ", permutation);
  22.  
  23. return new {sum, str};
  24. })
  25. .Where(intermediate => intermediate.sum == K)
  26. .Select(intermediate => $"{intermediate.str} = {K}");
  27.  
  28. Console.WriteLine(string.Join("\n", results));
  29. }
  30. }
  31.  
Success #stdin #stdout 0.02s 17572KB
stdin
Standard input is empty
stdout
-1 + 2 + 3 + 4 + -5 = 3
1 + -2 + 3 + -4 + 5 = 3
-1 + -2 + -3 + 4 + 5 = 3