Created
April 19, 2025 18:12
-
-
Save Helen460/d6a33764d46443c2155469e25c247b41 to your computer and use it in GitHub Desktop.
8DZ
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
| // 1) Від 1 до n. | |
| // Дано натуральне число n.Виведіть усі числа від 1 до n. | |
| // Вхід: 5 | |
| // Вихід : 1 2 3 4 5 | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| void show(int from, int to) { | |
| cout << from << " "; | |
| if (from < to) { | |
| show(from + 1, to); | |
| } | |
| } | |
| int main() { | |
| int n = 5; | |
| show(1, n); | |
| cout << "\n"; | |
| } | |
| // 2) Від A до B. | |
| //Дано два цілих числа A і B.Виведіть усі числа від A до B включно, у порядку зростання, якщо A < B, або в порядку зменшення в протилежному випадку. | |
| //Вхід: 5 1 | |
| //Вихід : 5 4 3 2 1 | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| void display(int a, int b) { | |
| cout << a << " "; | |
| if (a < b) { | |
| display(a + 1, b); | |
| } | |
| else if (a > b) { | |
| display(a - 1, b); | |
| } | |
| } | |
| int main() { | |
| int A = 5, B = 1; | |
| display(A, B); | |
| cout << "\n"; | |
| } | |
| //3) Точна ступінь двійки. | |
| //Дано натуральне число N.Виведіть слово YES, якщо число N є точною ступінню двійки, або слово NO в протилежному випадку. | |
| //Операцією піднесення до степеня користуватися не можна! | |
| //Вхід: 3 8 | |
| //Вихід : NO YES | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| void checkPowerOfTwo(int n) { | |
| if (n == 1) { | |
| cout << "YES\n"; | |
| return; | |
| } | |
| if (n % 2 != 0 || n == 0) { | |
| cout << "NO\n"; | |
| return; | |
| } | |
| checkPowerOfTwo(n / 2); | |
| } | |
| int main() { | |
| int a = 3, b = 8; | |
| checkPowerOfTwo(a); | |
| checkPowerOfTwo(b); | |
| } | |
| // 4) Сума цифр числа. | |
| // Дано натуральне число N.Обчисліть суму його цифр. | |
| // При вирішенні цієї задачі не можна використовувати рядки, списки, масиви, глобальні змінні(ну й цикли, звісно). | |
| // Вхід: 179 | |
| // Вихід : 17 | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| int sum(int n) { | |
| if (n == 0) return 0; | |
| return (n % 10) + sum(n / 10); | |
| } | |
| int main() { | |
| int n = 179; | |
| cout << sum(n) << "\n"; | |
| } | |
| // 5) Цифри числа справа наліво. | |
| // Дано натуральне число N.Виведіть усі його цифри по одній, у зворотному порядку, розділяючи їх пробілами. | |
| // При вирішенні цієї задачі не можна використовувати рядки, списки, масиви(ну й цикли, звісно).Дозволяється тільки рекурсія та цілецілочисельна арифметика. | |
| // Вхід: 179 | |
| // Вихід : 9 7 1 | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| void printReversed(int n) { | |
| cout << (n % 10) << " "; | |
| if (n >= 10) | |
| printReversed(n / 10); | |
| } | |
| int main() { | |
| int n = 179; | |
| printReversed(n); | |
| cout << "\n"; | |
| } | |
| // 6) Цифри числа зліва направо. | |
| // Дано натуральне число N.Виведіть усі його цифри по одній, у звичайному порядку, розділяючи їх пробілами або новими рядками. | |
| // При вирішенні цієї задачі не можна використовувати рядки, списки, масиви(ну й цикли, звісно).Дозволяється тільки рекурсія та цілецілочисельна арифметика. | |
| // Вхід: 179 | |
| // Вихід : 1 7 9 | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| void printForward(int n) { | |
| if (n >= 10) | |
| printForward(n / 10); | |
| cout << (n % 10) << " "; | |
| } | |
| int main() { | |
| int n = 179; | |
| printForward(n); | |
| cout << "\n"; | |
| } | |
| // 7) Реверс числа. | |
| // Дано число n, десятеричний запис якого не містить нулів.Отримайте число, записане тими ж цифрами, але в протилежному порядку.При вирішенні цієї задачі не можна використовувати цикли, рядки, списки, масиви, дозволяється тільки рекурсія та цілецілочисельна арифметика.Функція повинна повертати ціле число, яке є результатом роботи програми, виводити число по одній цифрі не можна. | |
| // Вхід: 179 | |
| // Вихід : 971 | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| int reverseNumber(int n, int result = 0) { | |
| if (n == 0) | |
| return result; | |
| return reverseNumber(n / 10, result * 10 + n % 10); | |
| } | |
| int main() { | |
| int n = 179; | |
| cout << reverseNumber(n) << "\n"; | |
| } | |
| // 8) Паліндром. | |
| // Дано слово, що складається тільки з малих латинських літер.Перевірте, чи є це слово паліндромом.Виведіть YES або NO. | |
| // При вирішенні цієї задачі не можна використовувати цикли. | |
| // Вхід: radar yes | |
| // Вихід : YES NO | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| bool isPalindrome(const char* str, int left, int right) { | |
| if (left >= right) return true; | |
| if (str[left] != str[right]) return false; | |
| return isPalindrome(str, left + 1, right - 1); | |
| } | |
| int length(const char* str, int i = 0) { | |
| if (str[i] == '\0') return i; | |
| return length(str, i + 1); | |
| } | |
| int main() | |
| { | |
| char s1[100], s2[100]; | |
| cin >> s1 >> s2; | |
| if (isPalindrome(s1, 0, length(s1) - 1)) cout << "YES\n"; | |
| else cout << "NO\n"; | |
| if (isPalindrome(s2, 0, length(s2) - 1)) cout << "YES\n"; | |
| else cout << "NO\n"; | |
| } | |
| // 9) Числа Фібоначчі. | |
| // Напишіть функцію для обчислення елементів ряду чисел Фібоначчі, спираючись на рекурентне рівняння F(n) = F(n - 1) + F(n - 2). | |
| // Функція приймає індекс числа, повертає значення числа. | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| int fib(int n) { | |
| if (n == 0) return 0; | |
| if (n == 1) return 1; | |
| return fib(n - 1) + fib(n - 2); | |
| } | |
| int main() | |
| { | |
| int n; | |
| cin >> n; | |
| cout << fib(n) << "\n"; | |
| } | |
| // 10) Ступінь числа. | |
| // Обчисліть ступінь числа, використовуючи рекурсію.У функцію передається 2 параметри — число і ступінь. | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| int power(int a, int b) { | |
| if (b == 0) return 1; | |
| return a * power(a, b - 1); | |
| } | |
| int main() | |
| { | |
| int a, b; | |
| cin >> a >> b; | |
| cout << power(a, b) << "\n"; | |
| } | |
| // 11) Сума чисел у діапазоні. | |
| // Обчисліть суму чисел у певному діапазоні.Початок та кінець діапазону задаються параметрами функції. | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| int sumRange(int a, int b) { | |
| if (a > b) return 0; | |
| return a + sumRange(a + 1, b); | |
| } | |
| int main() | |
| { | |
| int from, to; | |
| cin >> from >> to; | |
| cout << sumRange(from, to) << "\n"; | |
| } | |
| // 12) НОД. | |
| // Напишіть рекурсивну функцію для знаходження найбільшого спільного дільника двох цілих чисел. | |
| #include <iostream> | |
| #include <windows.h> | |
| using namespace std; | |
| int gcd(int a, int b) { | |
| if (b == 0) return a; | |
| return gcd(b, a % b); | |
| } | |
| int main() | |
| { | |
| int a, b; | |
| cin >> a >> b; | |
| cout << gcd(a, b) << "\n"; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment