diff options
Reworked ex 1 to be iterative
1 files changed, 9 insertions, 4 deletions
| -rw-r--r-- | Year 1/Programming introduction/Homeworks/homework1.cpp | 13 |
diff --git a/Year 1/Programming introduction/Homeworks/homework1.cpp b/Year 1/Programming introduction/Homeworks/homework1.cpp index 8a06baf..f4ca9b9 100644 --- a/Year 1/Programming introduction/Homeworks/homework1.cpp +++ b/Year 1/Programming introduction/Homeworks/homework1.cpp @@ -8,11 +8,16 @@ using namespace std; */ double f(unsigned int k, int x) { - if (k == 1) return x; + double sum = x; - if (k & 1) - return 3 * f(k - 1, x) + 1; - return f(k - 1, x) / 2; + for (unsigned int i = 2; i <= k; i++) { + if (i & 1) // if odd + sum = 3 * sum + 1; + else + sum /= 2; + } + + return sum; } void ex1() { |
