diff options
added sem 13
10 files changed, 133 insertions, 0 deletions
| -rw-r--r-- | README.md | 1 | ||||
| -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 |
@@ -13,3 +13,4 @@ - **Тема 10 (18.12.2020) :** Указатели. Символни низове. - **Тема 11 (22.12.2020) :** �лгоритми върху ма�иви. �лгоритми за тър�ене. �лгоритми за �ортиране. - **Тема 12 (27.12.2020) :** Референции. Пойнтери. Динамична памет. Задачи � низове. + - **Тема 13 (08.01.2021) :** Стекова рамка. Рекур�и�.
\ No newline at end of file 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 |
