diff options
feat(Week13): Add solutions to most exercises
1 files changed, 26 insertions, 0 deletions
| -rw-r--r-- | Week13/Exercise11.cpp | 26 |
diff --git a/Week13/Exercise11.cpp b/Week13/Exercise11.cpp new file mode 100644 index 0000000..2f29d38 --- /dev/null +++ b/Week13/Exercise11.cpp @@ -0,0 +1,26 @@ +#include <iostream> + +void threeChildren(unsigned a, unsigned b, unsigned c, unsigned prod) { + if (a * b * c == prod) { + std::cout << a << ' ' << b << ' ' << c << std::endl; + return; + } + + if (b + 1 < c - 1) + threeChildren(a, b + 1, c - 1, prod); + if (b + 1 < c - 2) + threeChildren(a + 1, b + 1, c - 2, prod); +} + +void threeChildren(unsigned sum, unsigned prod) { + threeChildren(1, 1, sum - 2, prod); +} + +int main() { + unsigned sum, prod; + std::cin >> sum >> prod; + + threeChildren(sum, prod); + + return 0; +} |
