Created
April 24, 2025 18:35
-
-
Save VKONSTANTINIUS/01ec43c84aeb70d5e5889201d77b6bbd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <iomanip> | |
#include <windows.h> | |
#include <cstdlib> | |
#include <ctime> | |
#include <algorithm> | |
using namespace std; | |
//1) Від 1 до n. | |
//Дано натуральне число n.Виведіть усі числа від 1 до n. | |
//Вхід: 5 | |
//Вихід : 1 2 3 4 5 | |
void task1_func(int n) { | |
if (n == 0) return; | |
task1_func(n - 1); | |
cout << n << " "; | |
} | |
//2) Від A до B. | |
//Дано два цілих числа A і B.Виведіть усі числа від A до B включно, | |
// у порядку зростання, якщо A < B, | |
// або в порядку зменшення в протилежному випадку. | |
//Вхід: 5 1 | |
//Вихід : 5 4 3 2 1 | |
void task2_func(int a, int b) { | |
cout << a << " "; | |
if (a == b) return; | |
if (a < b) task2_func(a + 1, b); | |
else task2_func(a - 1, b); | |
} | |
//3) Точна ступінь двійки. | |
//Дано натуральне число N.Виведіть слово YES, якщо число N є точною ступінню двійки, або слово NO в протилежному випадку. | |
//Операцією піднесення до степеня користуватися не можна! | |
//Вхід: 3 8 | |
//Вихід : NO YES | |
void task3_func(int n) { | |
if (n == 1) { | |
cout << "YES "; | |
}else if (n % 2 != 0 || n == 0) cout << "NO "; | |
else task3_func(n / 2); | |
} | |
//4) Сума цифр числа. | |
//Дано натуральне число N.Обчисліть суму його цифр. | |
//При вирішенні цієї задачі не можна використовувати рядки, списки, масиви, глобальні змінні(ну й цикли, звісно). | |
//Вхід: 179 | |
//Вихід : 17 | |
int task4_func(int n) { | |
if (n == 0) return 0; | |
return n % 10 + task4_func(n / 10); | |
} | |
//5) Цифри числа справа наліво. | |
//Дано натуральне число N.Виведіть усі його цифри по одній, у зворотному порядку, розділяючи їх пробілами. | |
//При вирішенні цієї задачі не можна використовувати рядки, списки, масиви(ну й цикли, звісно). | |
// Дозволяється тільки рекурсія та цілецілочисельна арифметика. | |
//Вхід: 179 | |
//Вихід : 9 7 1 | |
void task5_func(int n) { | |
cout << n % 10 << " "; | |
if (n >= 10) task5_func(n / 10); | |
} | |
//6) Цифри числа зліва направо. | |
//Дано натуральне число N.Виведіть усі його цифри по одній, у звичайному порядку, розділяючи їх пробілами або новими рядками. | |
//При вирішенні цієї задачі не можна використовувати рядки, списки, масиви(ну й цикли, звісно). | |
// Дозволяється тільки рекурсія та цілецілочисельна арифметика. | |
//Вхід: 179 | |
//Вихід : 1 7 9 | |
void task6_func(int n) { | |
if (n < 10) { | |
cout << n << " "; | |
} | |
else { | |
task6_func(n / 10); | |
cout << n % 10 << " "; | |
} | |
} | |
//7) Реверс числа. | |
//Дано число n, десятеричний запис якого не містить нулів. | |
//Отримайте число, записане тими ж цифрами, але в протилежному порядку. | |
//При вирішенні цієї задачі не можна використовувати цикли, рядки, списки, масиви, дозволяється тільки рекурсія та цілецілочисельна арифметика. | |
//Функція повинна повертати ціле число, яке є результатом роботи програми, виводити число по одній цифрі не можна. | |
//Вхід: 179 | |
//Вихід : 971 | |
int task7_func(int n, int m = 0) { | |
if (n == 0) return m; | |
return task7_func(n / 10, m * 10 + n % 10); | |
} | |
//9) Числа Фібоначчі. | |
//Напишіть функцію для обчислення елементів ряду чисел Фібоначчі, спираючись на рекурентне рівняння F(n) = F(n - 1) + F(n - 2). | |
//Функція приймає індекс числа, повертає значення числа. | |
int fib_func(int n) { | |
if (n == 0) return 0; | |
if (n == 1) return 1; | |
return fib_func(n - 1) + fib_func(n - 2); | |
} | |
//10) Ступінь числа. | |
//Обчисліть ступінь числа, використовуючи рекурсію.У функцію передається 2 параметри — число і ступінь. | |
int task10_func(int a, int b) { | |
if (b == 0) return 1; | |
return a * task10_func(a, b - 1); | |
} | |
//11) Сума чисел у діапазоні. | |
//Обчисліть суму чисел у певному діапазоні.Початок та кінець діапазону задаються параметрами функції. | |
int task11_func(int a, int b) { | |
if (a > b) return 0; | |
return a + task11_func(a + 1, b); | |
} | |
int main() | |
{ | |
task1_func(5); | |
cout << "\n"; | |
task2_func(2, 6); | |
cout << "\n"; | |
task3_func(3); | |
cout << "\n"; | |
task3_func(8); | |
cout << "\n"; | |
cout << task4_func(179) << "\n"; | |
task5_func(179); | |
cout << "\n"; | |
task6_func(179); | |
cout << "\n"; | |
cout << task7_func(179) << "\n"; | |
cout << fib_func(4) << "\n"; | |
cout << task10_func(2, 3) << "\n"; | |
cout << task11_func(2, 5) << "\n"; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment