From a69b56e59ae0e7862c75d0ee014029e56ff5298a Mon Sep 17 00:00:00 2001 From: Angeld55 Date: Fri, 8 Jan 2021 14:28:26 +0200 Subject: added sem 13 --- Sem. 13/README.md | 15 +++++++++++++++ Sem. 13/task1.cpp | 15 +++++++++++++++ Sem. 13/task2.cpp | 14 ++++++++++++++ Sem. 13/task3.cpp | 14 ++++++++++++++ Sem. 13/task4.cpp | 0 Sem. 13/task5.cpp | 16 ++++++++++++++++ Sem. 13/task6.cpp | 15 +++++++++++++++ Sem. 13/task7.cpp | 23 +++++++++++++++++++++++ Sem. 13/task8.cpp | 20 ++++++++++++++++++++ 9 files changed, 132 insertions(+) create mode 100644 Sem. 13/README.md create mode 100644 Sem. 13/task1.cpp create mode 100644 Sem. 13/task2.cpp create mode 100644 Sem. 13/task3.cpp create mode 100644 Sem. 13/task4.cpp create mode 100644 Sem. 13/task5.cpp create mode 100644 Sem. 13/task6.cpp create mode 100644 Sem. 13/task7.cpp create mode 100644 Sem. 13/task8.cpp (limited to 'Sem. 13') diff --git a/Sem. 13/README.md b/Sem. 13/README.md new file mode 100644 index 0000000..be7432c --- /dev/null +++ b/Sem. 13/README.md @@ -0,0 +1,15 @@ +**Задача 1:** Да се реализира рекурсивна функция, която пресмята n! + +**Задача 2:** Да се реализира рекурсивна функция, която пресмята n-тото число на фибоначи. + +**Задача 3:** Да се реализира рекурсивна функция, която вдига число на дадена степен. + +**Задача 4:** Да се реализира рекурсивна функция, която приема масив от цели числа и връща сумата на елементите в него. + +**Задача 5:** Да се реализира рекурсивна функция, която приема **произволен** масив и число и връща дали числото се съдържа в масива. (Линейно търсене). + +**Задача 6:** Да се реализира рекурсивна функция, която приема **сортиран** масив и число и връща дали числото се съдържа в масива. (Двоично търсене). + +**Задача 7:** Да се реализира рекурсивна функция, която приема стринг и връща дали стрингът е палиндром. + +**Задача 8:** Да се реализира рекурсивна функция, която приема масив от цели числа и връща най-големият елемент в масива. diff --git a/Sem. 13/task1.cpp b/Sem. 13/task1.cpp new file mode 100644 index 0000000..bd2ce93 --- /dev/null +++ b/Sem. 13/task1.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; + +unsigned fact(unsigned n) +{ + if (n == 0) + return 1; + + return n * fact(n - 1); +} + +int main() +{ + cout << fact(5); +} \ No newline at end of file diff --git a/Sem. 13/task2.cpp b/Sem. 13/task2.cpp new file mode 100644 index 0000000..39f69ad --- /dev/null +++ b/Sem. 13/task2.cpp @@ -0,0 +1,14 @@ +#include +using namespace std; + +unsigned fibb(unsigned n) +{ + if (n == 0 || n == 1) + return 1; + return fibb(n - 1) + fibb(n - 2); +} + +int main() +{ + cout << fibb(5); +} \ No newline at end of file diff --git a/Sem. 13/task3.cpp b/Sem. 13/task3.cpp new file mode 100644 index 0000000..a17bdb0 --- /dev/null +++ b/Sem. 13/task3.cpp @@ -0,0 +1,14 @@ +#include +using namespace std; + +unsigned power(unsigned n, unsigned k) +{ + if (k == 0) + return 1; + return n * power(n, k - 1); +} + +int main() +{ + cout << power(2,7); +} \ No newline at end of file diff --git a/Sem. 13/task4.cpp b/Sem. 13/task4.cpp new file mode 100644 index 0000000..e69de29 diff --git a/Sem. 13/task5.cpp b/Sem. 13/task5.cpp new file mode 100644 index 0000000..5e38f28 --- /dev/null +++ b/Sem. 13/task5.cpp @@ -0,0 +1,16 @@ +#include +using namespace std; + +int sum(const int* arr, int len) +{ + if (len == 0) + return 0; + + return arr[0] + sum(arr+1, len - 1); +} + +int main() +{ + int arr[] = { 1, 2, 2, 6 }; + cout << sum(arr,4); +} \ No newline at end of file diff --git a/Sem. 13/task6.cpp b/Sem. 13/task6.cpp new file mode 100644 index 0000000..121cc9b --- /dev/null +++ b/Sem. 13/task6.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; + +bool LinearSearch(const int* arr, int len, int searched) +{ + if (len == 0) + return false; + return arr[0] == searched || LinearSearch(arr + 1, len - 1, searched); +} + +int main() +{ + int arr[] = { 17, 1, 2, 2, 6 }; + cout << LinearSearch(arr, 5, 17); +} \ No newline at end of file diff --git a/Sem. 13/task7.cpp b/Sem. 13/task7.cpp new file mode 100644 index 0000000..c90cf32 --- /dev/null +++ b/Sem. 13/task7.cpp @@ -0,0 +1,23 @@ +#include +using namespace std; + +bool BinarySearch(const int* arr, int len, int searched) +{ + if (len == 0) + return false; + + int midIndex = len / 2; + + if (arr[midIndex] == searched) + return true; + if (arr[midIndex] < searched) + return BinarySearch(arr + midIndex + 1, len - midIndex - 1, searched); + else + return BinarySearch(arr, midIndex, searched); +} + +int main() +{ + int arr[] = { 1, 2, 2, 6, 19, 55 }; + cout << BinarySearch(arr, 6, 19); +} \ No newline at end of file diff --git a/Sem. 13/task8.cpp b/Sem. 13/task8.cpp new file mode 100644 index 0000000..a22d3b7 --- /dev/null +++ b/Sem. 13/task8.cpp @@ -0,0 +1,20 @@ +#include +using namespace std; + +int max(int a, int b) +{ + return a > b ? a : b; +} + +int max(const int* arr, int len) +{ + if (len == 1) + return arr[0]; + return max(arr[0], max(arr + 1, len - 1)); +} + +int main() +{ + int arr[] = { 1, 2, 2,-4,-6 }; + cout << max(arr, 5); +} \ No newline at end of file -- cgit v1.3.1-23-gd82d