diff --git a/aoc_2024/src/day7.rs b/aoc_2024/src/day7.rs index 678b16a..999ce68 100644 --- a/aoc_2024/src/day7.rs +++ b/aoc_2024/src/day7.rs @@ -34,7 +34,7 @@ fn part1_test(target: i64, remaining: i64, numbers: &[u64]) -> bool { let num = numbers[numbers.len() - 1] as i64; let rest = &numbers[0..numbers.len() - 1]; let mul = remaining % num == 0 && part1_test(target, remaining / num, rest); - let add = part1_test(target, remaining - num, rest); + let add = remaining >= num && part1_test(target, remaining - num, rest); mul || add } } @@ -56,7 +56,7 @@ fn part2_test(target: i64, remaining: i64, numbers: &[u64]) -> bool { let mul = remaining % num == 0 && part2_test(target, remaining / num, rest); let pow = 10i64.pow(num.ilog10() + 1); let con = remaining % pow == num && part2_test(target, remaining / pow, rest); - let add = part2_test(target, remaining - num, rest); + let add = remaining >= num && part2_test(target, remaining - num, rest); mul || con || add } }