Skip to content

Instantly share code, notes, and snippets.

@VKONSTANTINIUS
Created April 24, 2025 18:35
Show Gist options
  • Save VKONSTANTINIUS/01ec43c84aeb70d5e5889201d77b6bbd to your computer and use it in GitHub Desktop.
Save VKONSTANTINIUS/01ec43c84aeb70d5e5889201d77b6bbd to your computer and use it in GitHub Desktop.
#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