Sequence.cs 573 B

123456789101112131415161718192021222324252627
  1. namespace Day9;
  2. public record Sequence(long[] Numbers)
  3. {
  4. public bool IsZeros() => Numbers.All(n => n == 0);
  5. public Sequence Difference()
  6. {
  7. var diff = new long[Numbers.Length - 1];
  8. for (var i = 0; i < Numbers.Length - 1; i++)
  9. {
  10. diff[i] = Numbers[i + 1] - Numbers[i];
  11. }
  12. return new Sequence(diff);
  13. }
  14. public long Next(long delta)
  15. {
  16. return Numbers.Last() + delta;
  17. }
  18. public long Prev(long delta)
  19. {
  20. return Numbers.First() - delta;
  21. }
  22. }