Exemple #1
0
    private static int Solution1(string[] input)
    {
        TargetArea targetArea = new(input[0]);
        int        xDirection = Math.Sign(targetArea.XFrom);
        int        minX       = Math.Min(Math.Abs(targetArea.XFrom), Math.Abs(targetArea.XFrom));

        int xVelocity;

        for (xVelocity = 1; SequenceHelpers.TriangularNumber(xVelocity) < minX; xVelocity++)
        {
        }
        Point initialVelocity = new(xVelocity * xDirection, Math.Abs(targetArea.YFrom) - 1);

        (_, int height) = targetArea.WillProbeHit(initialVelocity);

        return(height);
    }
Exemple #2
0
    public void TriangularNumbers(int n, int expected)
    {
        int actual = SequenceHelpers.TriangularNumber(n);

        Assert.Equal(expected, actual);
    }
Exemple #3
0
 static int FuelCost(int n) => SequenceHelpers.TriangularNumber(n);