From 175721a63b426355274fa9e8063f762020ab8362 Mon Sep 17 00:00:00 2001 From: RossTheRoss Date: Thu, 30 Jan 2020 16:55:04 -0600 Subject: R E A R R A N G E --- OLD/ee1301/wk6/hw6_directory/strap012_HW6B.cpp | 35 ++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 OLD/ee1301/wk6/hw6_directory/strap012_HW6B.cpp (limited to 'OLD/ee1301/wk6/hw6_directory/strap012_HW6B.cpp') diff --git a/OLD/ee1301/wk6/hw6_directory/strap012_HW6B.cpp b/OLD/ee1301/wk6/hw6_directory/strap012_HW6B.cpp new file mode 100644 index 0000000..17a37fd --- /dev/null +++ b/OLD/ee1301/wk6/hw6_directory/strap012_HW6B.cpp @@ -0,0 +1,35 @@ +//Matthew Strapp +//EE1301 +//17 April 2019 +//HW 6B: Recursion and ff(x) +#include + +int ff(int x); +int main() { + int x, y; + do { + std::cout << "Please enter a value of x: "; + std::cin >> x; + } while (x<0); + std::cout << "Beginning calculation of ff(x)...\n"; + y = ff(x); + std::cout << "Calcuation complete, ff(x) = " << y << std::endl; +} + +// This function either returns 1 when x is one of two recrusive conditions depending on if x is even or odd. +int ff(int x) { + if (x > 1) { + if (x%2 == 0) { + // x is even + std::cout << "Calling ff(" << x/2 << ")\n"; + return x*ff(x/2); + } else { + // x is odd but not 1 + std::cout << "Calling ff(" << x-2 << ")\n"; + return x*ff(x-2); + } + } else { + // x is 1 (or 0) + return 1; + } +} -- cgit v1.2.3