From 96254947699986c59f0dc63d69fd4b76bd3ed43e Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 6 Jul 2026 19:08:08 +0200 Subject: Initial commit --- 01_introductory_problems/gray_code_2205.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 01_introductory_problems/gray_code_2205.cpp (limited to '01_introductory_problems/gray_code_2205.cpp') diff --git a/01_introductory_problems/gray_code_2205.cpp b/01_introductory_problems/gray_code_2205.cpp new file mode 100644 index 0000000..4fa8a2d --- /dev/null +++ b/01_introductory_problems/gray_code_2205.cpp @@ -0,0 +1,22 @@ +#include +#include + +void print(int number, int ndigits) { + std::cout << std::format("{0:0{1}b}", number, ndigits) << "\n"; +} + +void print_all(int& start, int digit, int ndigits) { + if (digit == 0) { + print(start, ndigits); + } else { + print_all(start, digit-1, ndigits); + start ^= 1 << (digit-1); + print_all(start, digit-1, ndigits); + } +} + +int main() { + int n, start{0}; + std::cin >> n; + print_all(start, n, n); +} -- cgit v1.3