public void GetNNumbersWithSumEqualTo(int n, int result) { var numbers = Program.ReadInput(Program.InputTxt); var p = new ExpandedSolver(numbers).GetNNumbersWithSumEqualTo(n, Program.SumToFind); p.Aggregate((x, y) => x * y).Should().Be(result); }
public long GetFirstNumberNotEqualToNPrecedent(int key) { for (var i = key; i < _numbers.Count; i++) { var lastNNumbers = _numbers.Skip(i - key).Take(key); var twoNumbersWithSumEqualTo2 = new ExpandedSolver(lastNNumbers).GetNNumbersWithSumEqualTo(2, _numbers[i]); if (!twoNumbersWithSumEqualTo2.Any()) { return(_numbers[i]); } } throw new InvalidOperationException("No such number"); }
public void Generate2UpletsTest() { var numbers = new long[] { 1, 2, 3 }; var expected = new[] { new[] { 1, 1 }, new[] { 1, 2 }, new[] { 1, 3 }, new[] { 2, 1 }, new[] { 2, 2 }, new[] { 2, 3 }, new[] { 3, 1 }, new[] { 3, 2 }, new[] { 3, 3 } }; var result = new ExpandedSolver(numbers).GenerateNUplets(2).ToList(); result.Should().BeEquivalentTo(expected); }