From 011c4e2d80e9abf72831ed320047dc48e94f6b64 Mon Sep 17 00:00:00 2001 From: mjk22071998 Date: Sat, 5 Oct 2024 10:33:58 +0500 Subject: [PATCH] feat: Added namespace greedy_algoriithms --- greedy_algorithms/digit_separation.cpp | 97 +++++++++++++------------- 1 file changed, 50 insertions(+), 47 deletions(-) diff --git a/greedy_algorithms/digit_separation.cpp b/greedy_algorithms/digit_separation.cpp index 49b3b4260..e3ac00918 100644 --- a/greedy_algorithms/digit_separation.cpp +++ b/greedy_algorithms/digit_separation.cpp @@ -4,73 +4,76 @@ #include #include +namespace greedy_algorithms{ + /** * @brief A class that provides methods to separate the digits of a large * positive number. */ -class DigitSeparation { - public: - /** - * @brief Default constructor for the DigitSeparation class. - */ - DigitSeparation() {} + class DigitSeparation { + public: + /** + * @brief Default constructor for the DigitSeparation class. + */ + DigitSeparation() {} + + /** + * @brief Separates the digits of a large positive number into a vector in + * reverse order. + * + * @param largeNumber The large number to separate digits from. + * @return A vector of digits in reverse order. + */ + std::vector digitSeparationReverseOrder( + long long largeNumber) const; + + /** + * @brief Separates the digits of a large positive number into a vector in + * forward order. + * + * @param largeNumber The large number to separate digits from. + * @return A vector of digits in forward order. + */ + std::vector digitSeparationForwardOrder( + long long largeNumber) const; + }; /** - * @brief Separates the digits of a large positive number into a vector in - * reverse order. + * @brief Implementation of digitSeparationReverseOrder method. * * @param largeNumber The large number to separate digits from. * @return A vector of digits in reverse order. */ - std::vector digitSeparationReverseOrder( - long long largeNumber) const; + std::vector DigitSeparation::digitSeparationReverseOrder( + long long largeNumber) const { + std::vector result; + if (largeNumber != 0) { + while (largeNumber != 0) { + result.push_back(std::abs(largeNumber % 10)); + largeNumber /= 10; + } + } else { + result.push_back(0); + } + return result; + } /** - * @brief Separates the digits of a large positive number into a vector in - * forward order. + * @brief Implementation of digitSeparationForwardOrder method. * * @param largeNumber The large number to separate digits from. * @return A vector of digits in forward order. */ - std::vector digitSeparationForwardOrder( - long long largeNumber) const; -}; - -/** - * @brief Implementation of digitSeparationReverseOrder method. - * - * @param largeNumber The large number to separate digits from. - * @return A vector of digits in reverse order. - */ -std::vector DigitSeparation::digitSeparationReverseOrder( - long long largeNumber) const { - std::vector result; - if (largeNumber != 0) { - while (largeNumber != 0) { - result.push_back(std::abs(largeNumber % 10)); - largeNumber /= 10; - } - } else { - result.push_back(0); + std::vector DigitSeparation::digitSeparationForwardOrder( + long long largeNumber) const { + std::vector result = digitSeparationReverseOrder(largeNumber); + std::reverse(result.begin(), result.end()); + return result; } - return result; -} - -/** - * @brief Implementation of digitSeparationForwardOrder method. - * - * @param largeNumber The large number to separate digits from. - * @return A vector of digits in forward order. - */ -std::vector DigitSeparation::digitSeparationForwardOrder( - long long largeNumber) const { - std::vector result = digitSeparationReverseOrder(largeNumber); - std::reverse(result.begin(), result.end()); - return result; } int main() { - DigitSeparation ds; + greedy_algorithms::DigitSeparation ds; // Test case: Positive number long long number = 1234567890;