This is part of a series on little things I learned while doing the problems from Advent of Code 2023. It won’t fully explain any problems or solutions from AOC. You can find all my solutions on Github.
A small programming technique tidbit I hadn’t encountered before: when finding solutions to strict
inequalities (e.g. find the smallest integer x > y
where y
is floating point), if your program
solves for a floating point x == y
1, how do you find the next greater integer than x
to
satisfy the inequality?
My first instinct was that it’s simply ceil(x)
, but that’s actually wrong — if x
is already an
integer, then ceil(x) == x == y
does not satisfy x > y
. Instead, you do floor(x) + 1
, to
guarantee that the result is 1. greater than y
, and 2. an integer.
Similarly when you need integral x < y
, you can do ceil(x) - 1
.
-
to make it more concrete, the AoC problem involved solving for the roots of a quadratic equation, and finding the integral solutions strictly between them. ↩