Lukas Angerer il y a 2 ans
Parent
commit
16bfc85370
3 fichiers modifiés avec 29 ajouts et 0 suppressions
  1. 13 0
      Day9/Program.cs
  2. 11 0
      Day9/Pyramid.cs
  3. 5 0
      Day9/Sequence.cs

+ 13 - 0
Day9/Program.cs

@@ -30,4 +30,17 @@ foreach (var s in sequences)
 Console.WriteLine();
 Console.WriteLine($"Total: {sum}");
 
+Console.WriteLine();
+sum = 0;
+foreach (var s in sequences)
+{
+    var pyramid = new Pyramid(s);
+    var prev = pyramid.Retrodict();
+    Console.WriteLine(prev);
+    sum += prev;
+}
+
+Console.WriteLine();
+Console.WriteLine($"Total: {sum}");
+
 return 0;

+ 11 - 0
Day9/Pyramid.cs

@@ -21,6 +21,17 @@ public class Pyramid
 
         return next;
     }
+    
+    public long Retrodict()
+    {
+        var next = 0L;
+        foreach (var sequence in _layers.Reverse().Skip(1))
+        {
+            next = sequence.Prev(next);
+        }
+
+        return next;
+    }
 
     private void Build()
     {

+ 5 - 0
Day9/Sequence.cs

@@ -19,4 +19,9 @@ public record Sequence(long[] Numbers)
     {
         return Numbers.Last() + delta;
     }
+    
+    public long Prev(long delta)
+    {
+        return Numbers.First() - delta;
+    }
 }