From 6df99b41c9b3fdc7b4e1ccc08ea8faffff39f67d Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 12 Jan 2022 19:45:01 +0200 Subject: Create reverse_rec.cpp --- Sem. 13/reverse_rec.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Sem. 13/reverse_rec.cpp diff --git a/Sem. 13/reverse_rec.cpp b/Sem. 13/reverse_rec.cpp new file mode 100644 index 0000000..9ff2618 --- /dev/null +++ b/Sem. 13/reverse_rec.cpp @@ -0,0 +1,30 @@ +#include + + +//функция, която обръща число рекурсивно. + +size_t reverse(size_t n, size_t mult) +{ + if (n <= 9) + return n; + + int lastDigit = n % 10; + return mult * lastDigit + reverse(n / 10, mult/10); +} + +size_t reverse_wrapper(size_t n) +{ + int mult = 1; + int copyN = n; + while (copyN != 0) + { + mult *= 10; + copyN /= 10; + } + + return reverse(n, mult / 10); +} +int main() +{ + std::cout << reverse_wrapper(1234); +} -- cgit v1.3.1-23-gd82d