From ad1ff383ef356305b9d6341ee46370b2b8caab9a Mon Sep 17 00:00:00 2001 From: NaiJi Date: Tue, 31 Aug 2021 12:42:13 +0300 Subject: [PATCH] 4.1 --- .gitignore | 1 + 4.1/sum.cpp | 14 ++++++++++++++ 4.1/sum_tail.cpp | 19 +++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 .gitignore create mode 100644 4.1/sum.cpp create mode 100644 4.1/sum_tail.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5761abc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.o diff --git a/4.1/sum.cpp b/4.1/sum.cpp new file mode 100644 index 0000000..c3e8d8f --- /dev/null +++ b/4.1/sum.cpp @@ -0,0 +1,14 @@ +#include + +int sum(int n) +{ + return (n != 0) + ? n + sum(n - 1) + : n; +} + +int main() +{ + int n = 5; + std::cout << "For n = " << n << " sum is " << sum(n) << '\n'; +} diff --git a/4.1/sum_tail.cpp b/4.1/sum_tail.cpp new file mode 100644 index 0000000..0e27694 --- /dev/null +++ b/4.1/sum_tail.cpp @@ -0,0 +1,19 @@ +#include + +int sumStep(int n, int s) +{ + return (n != 0) + ? sumStep(n - 1, n + s) + : s; +} + +int sum(int n) +{ + return sumStep(n, 0); +} + +int main() +{ + int n = 5; + std::cout << "For n = " << n << " sum is " << sum(n) << '\n'; +}