Skip to content

Commit 106f049

Browse files
committed
style: use std::transform_reduce
1 parent 5cc72eb commit 106f049

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

dynamic_programming/catalan_numbers.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <cassert> /// for assert
1313
#include <cstdint> /// for std::uint64_t
1414
#include <cstdlib> /// for std::size_t
15+
#include <numeric> /// for std::transform_reduce
1516
#include <vector> /// for std::vector
1617

1718
/**
@@ -22,11 +23,9 @@ class catalan_numbers {
2223
std::vector<value_type> known{1, 1};
2324

2425
value_type compute_next() {
25-
value_type res = 0;
26-
for (std::size_t i = 0; i < known.size(); ++i) {
27-
res += known[i] * known[known.size() - i - 1];
28-
}
29-
return res;
26+
return std::transform_reduce(known.begin(), known.end(), known.rbegin(),
27+
static_cast<value_type>(), std::plus<>(),
28+
std::multiplies<>());
3029
}
3130

3231
void add() { known.push_back(this->compute_next()); }

0 commit comments

Comments
 (0)