Website Summary Files Commits Branches @commit @diff @stats
path: root / Week13 / Exercise07.cpp
diff options
context:
space:
mode:
1 files changed, 26 insertions, 0 deletions
-rw-r--r--Week13/Exercise07.cpp26
diff --git a/Week13/Exercise07.cpp b/Week13/Exercise07.cpp
new file mode 100644
index 0000000..f2aa288
--- /dev/null
+++ b/Week13/Exercise07.cpp
@@ -0,0 +1,26 @@
+#include <iostream>
+
+const unsigned MAX_BITS = 32;
+
+void printBits(unsigned bits, unsigned i, char buffer[MAX_BITS]) {
+ if (bits == 0) {
+ buffer[i] = '\0';
+ std::cout << buffer << std::endl;
+ }
+ else {
+ buffer[i] = '0';
+ printBits(bits - 1, i + 1, buffer);
+ buffer[i] = '1';
+ printBits(bits - 1, i + 1, buffer);
+ }
+}
+
+int main() {
+ unsigned bits;
+ std::cin >> bits;
+
+ char buffer[MAX_BITS];
+ printBits(bits, 0, buffer);
+
+ return 0;
+}