diff options
added sem 13
9 files changed, 132 insertions, 0 deletions
| -rw-r--r-- | Sem. 13/README.md | 15 | ||||
| -rw-r--r-- | Sem. 13/task1.cpp | 15 | ||||
| -rw-r--r-- | Sem. 13/task2.cpp | 14 | ||||
| -rw-r--r-- | Sem. 13/task3.cpp | 14 | ||||
| -rw-r--r-- | Sem. 13/task4.cpp | 0 | ||||
| -rw-r--r-- | Sem. 13/task5.cpp | 16 | ||||
| -rw-r--r-- | Sem. 13/task6.cpp | 15 | ||||
| -rw-r--r-- | Sem. 13/task7.cpp | 23 | ||||
| -rw-r--r-- | Sem. 13/task8.cpp | 20 |
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 <iostream> +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 <iostream> +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 <iostream> +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 --- /dev/null +++ b/Sem. 13/task4.cpp 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 <iostream> +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 <iostream> +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 <iostream> +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 <iostream> +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 |
