Skip to content

Commit 011c4e2

Browse files
committed
feat: Added namespace greedy_algoriithms
1 parent 48f42a7 commit 011c4e2

File tree

1 file changed

+50
-47
lines changed

1 file changed

+50
-47
lines changed

greedy_algorithms/digit_separation.cpp

Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,73 +4,76 @@
44
#include <vector>
55
#include <cassert>
66

7+
namespace greedy_algorithms{
8+
79
/**
810
* @brief A class that provides methods to separate the digits of a large
911
* positive number.
1012
*/
11-
class DigitSeparation {
12-
public:
13-
/**
14-
* @brief Default constructor for the DigitSeparation class.
15-
*/
16-
DigitSeparation() {}
13+
class DigitSeparation {
14+
public:
15+
/**
16+
* @brief Default constructor for the DigitSeparation class.
17+
*/
18+
DigitSeparation() {}
19+
20+
/**
21+
* @brief Separates the digits of a large positive number into a vector in
22+
* reverse order.
23+
*
24+
* @param largeNumber The large number to separate digits from.
25+
* @return A vector of digits in reverse order.
26+
*/
27+
std::vector<long long> digitSeparationReverseOrder(
28+
long long largeNumber) const;
29+
30+
/**
31+
* @brief Separates the digits of a large positive number into a vector in
32+
* forward order.
33+
*
34+
* @param largeNumber The large number to separate digits from.
35+
* @return A vector of digits in forward order.
36+
*/
37+
std::vector<long long> digitSeparationForwardOrder(
38+
long long largeNumber) const;
39+
};
1740

1841
/**
19-
* @brief Separates the digits of a large positive number into a vector in
20-
* reverse order.
42+
* @brief Implementation of digitSeparationReverseOrder method.
2143
*
2244
* @param largeNumber The large number to separate digits from.
2345
* @return A vector of digits in reverse order.
2446
*/
25-
std::vector<long long> digitSeparationReverseOrder(
26-
long long largeNumber) const;
47+
std::vector<long long> DigitSeparation::digitSeparationReverseOrder(
48+
long long largeNumber) const {
49+
std::vector<long long> result;
50+
if (largeNumber != 0) {
51+
while (largeNumber != 0) {
52+
result.push_back(std::abs(largeNumber % 10));
53+
largeNumber /= 10;
54+
}
55+
} else {
56+
result.push_back(0);
57+
}
58+
return result;
59+
}
2760

2861
/**
29-
* @brief Separates the digits of a large positive number into a vector in
30-
* forward order.
62+
* @brief Implementation of digitSeparationForwardOrder method.
3163
*
3264
* @param largeNumber The large number to separate digits from.
3365
* @return A vector of digits in forward order.
3466
*/
35-
std::vector<long long> digitSeparationForwardOrder(
36-
long long largeNumber) const;
37-
};
38-
39-
/**
40-
* @brief Implementation of digitSeparationReverseOrder method.
41-
*
42-
* @param largeNumber The large number to separate digits from.
43-
* @return A vector of digits in reverse order.
44-
*/
45-
std::vector<long long> DigitSeparation::digitSeparationReverseOrder(
46-
long long largeNumber) const {
47-
std::vector<long long> result;
48-
if (largeNumber != 0) {
49-
while (largeNumber != 0) {
50-
result.push_back(std::abs(largeNumber % 10));
51-
largeNumber /= 10;
52-
}
53-
} else {
54-
result.push_back(0);
67+
std::vector<long long> DigitSeparation::digitSeparationForwardOrder(
68+
long long largeNumber) const {
69+
std::vector<long long> result = digitSeparationReverseOrder(largeNumber);
70+
std::reverse(result.begin(), result.end());
71+
return result;
5572
}
56-
return result;
57-
}
58-
59-
/**
60-
* @brief Implementation of digitSeparationForwardOrder method.
61-
*
62-
* @param largeNumber The large number to separate digits from.
63-
* @return A vector of digits in forward order.
64-
*/
65-
std::vector<long long> DigitSeparation::digitSeparationForwardOrder(
66-
long long largeNumber) const {
67-
std::vector<long long> result = digitSeparationReverseOrder(largeNumber);
68-
std::reverse(result.begin(), result.end());
69-
return result;
7073
}
7174

7275
int main() {
73-
DigitSeparation ds;
76+
greedy_algorithms::DigitSeparation ds;
7477

7578
// Test case: Positive number
7679
long long number = 1234567890;

0 commit comments

Comments
 (0)