From 471bfeed651d7c86feabaf08b9edd492b4441d56 Mon Sep 17 00:00:00 2001 From: Kyle Shores Date: Sat, 7 Dec 2024 22:58:34 -0600 Subject: [PATCH] removing inlined function --- 2024/CMakeLists.txt | 5 +++++ 2024/src/day7.cpp | 26 +++++++++----------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/2024/CMakeLists.txt b/2024/CMakeLists.txt index ab415cf..861c76a 100644 --- a/2024/CMakeLists.txt +++ b/2024/CMakeLists.txt @@ -8,6 +8,11 @@ project( LANGUAGES CXX ) +# default to release build +if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release) +endif() + message(STATUS "CMake build configuration for ${PROJECT_NAME} (${CMAKE_BUILD_TYPE}) ${PROJECT_VERSION}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) diff --git a/2024/src/day7.cpp b/2024/src/day7.cpp index 3800590..aadf57a 100644 --- a/2024/src/day7.cpp +++ b/2024/src/day7.cpp @@ -21,21 +21,15 @@ Ops default_ops = { std::multiplies() }; -template -inline int numDigits(T number) -{ - int digits = 0; - if (number < 0) digits = 1; - while (number) { - number /= 10; - digits++; - } - return digits; -} - std::function concat = [](long long a, long long b) { - int num_digits = numDigits(b); - return a * std::pow(10, num_digits) + b; + long long number = b; + int digits = 0; + if (number < 0) digits = 1; + while (number) { + number /= 10; + digits++; + } + return a * std::pow(10, digits) + b; }; bool is_possible(long long target, long long acc, const std::vector& nums, size_t idx = 0, const Ops& ops = default_ops) { @@ -43,10 +37,8 @@ bool is_possible(long long target, long long acc, const std::vector& nums, return acc == target; } - long long first = nums[idx]; - for (auto op : ops) { - if (is_possible(target, op(acc, first), nums, idx + 1, ops)) { + if (is_possible(target, op(acc, nums[idx]), nums, idx + 1, ops)) { return true; } }