Last active
March 28, 2025 12:57
-
-
Save Ruthenus/a8dac4d522d8a80f79d6bf9e131f9c51 to your computer and use it in GitHub Desktop.
Week 14 Homework in IT STEP Academy (loops tasks)
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 <windows.h> // щоб використати функцію SetConsoleOutputCP | |
#include <cstdlib> // для роботи з генерацією випадкових чисел | |
#include <ctime> // те саме | |
#include <string> // щоб застосувати рядковий тип | |
#include <cmath> // математична бібліотека | |
#include <iomanip> // для налаштування вирівнювання | |
using namespace std; | |
// Завдання на один простий цикл while/do while/for (6 задач) | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 3. Загадати випадковим чином 100 цілих чисел у діапазоні від -100 | |
// до 100. Обчислити відсоток позитивних чисел, відсоток негативних | |
// чисел і відсоток нулів, а також парних чисел і відсоток непарних. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ I.3\n\n"; | |
// Оскільки маємо отримати 100 чисел, розв'язання задачі | |
// спростимо, визначаючи відразу відсотки. | |
// Ініціалізація генератора випадкових чисел | |
srand(time(0)); | |
// Ініціалізація відсоткового відношення: | |
short pctPositives = 0; // позитивних цілих чисел | |
short pctNegatives = 0; // негативних цілих чисел | |
short pctNuls = 0; // відсоток нулів | |
short pctEvenNumbers = 0; // парних чисел, нуль – парне число! | |
short pctOddNumbers = 0; // відсоток непарних чисел | |
// Обчислення триватимуть, доки не буде перебрано всі цілі числа | |
// в заданому діапазоні, як парні, так і непарні: | |
while (pctEvenNumbers + pctOddNumbers < 100) { | |
// Генеруємо ціле число в діапазоні від -100 до 100: | |
short intNumber = -100 + rand() % 201; | |
// Можна швидко підрахувати відсотки: | |
if (intNumber > 0) { pctPositives++; } | |
if (intNumber < 0) { pctNegatives++; } | |
if (intNumber == 0) { pctNuls++; } | |
if (intNumber % 2 == 0) { pctEvenNumbers++; } | |
if (intNumber % 2 != 0) { pctOddNumbers++; } | |
} | |
cout << "Частка позитивних чисел: " << pctPositives << "%\n"; | |
cout << "Частка негативних чисел: " << pctNegatives << "%\n"; | |
cout << "Частка нулів: " << pctNuls << "%\n"; | |
cout << "Усього " << pctPositives + pctNegatives + pctNuls; | |
cout << "%, з них:\n"; | |
cout << "\tпарних чисел: " << pctEvenNumbers << "%\n"; | |
cout << "\tнепарних чисел: " << pctOddNumbers << "%\n"; | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧІ | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 4. Написати програму, яка обчислює факторіал введеного числа. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ I.4\n\n"; | |
long long number; // число, що вводиться | |
long long factorial; // його факторіал | |
// З Python більше можливостей, як побачимо далі! | |
cout << "Щоб обчислити факторіал, "; | |
cout << "будь ласка, введіть невід'ємне ціле число: \n"; | |
cin >> number; | |
if (number > 0) { | |
factorial = number; | |
for (unsigned long long natural = number; natural > 1; --natural) { | |
factorial *= natural - 1; | |
} | |
cout << "\t\t" << number << "! = " << factorial << "\n"; | |
} | |
else if (number == 0) { | |
factorial = 1; | |
cout << "\t\t0! = 1\n\t\t1! = 1 * 0! = 1\n"; | |
} | |
else { | |
cout << "\t\tКОМПЛЕКСНА НЕСКІНЧЕННІСТЬ\n"; | |
//якщо застосувати тип unsigned long long, нічого б не вивело! | |
} | |
// Порівняння з обчисленнями на калькуляторі Windows 11 невтішне: | |
// 15! = 1307674368000 вірно | |
// 16! = 20922789888000 вірно | |
// 17! = 355687428096000 вірно | |
// 18! = 6402373705728000 вірно | |
// 19! = 121645100408832000 вірно | |
// 20! = 2432902008176640000 вірно | |
// 21! = -4249290049419214848 ??? переповнення... | |
// long long От −9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 | |
// https://learn.microsoft.com/ru-ru/cpp/cpp/data-type-ranges?view=msvc-170 | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧІ | |
// ПОЧАТОК КОДУ ЗАДАЧ | |
// 6. З клавіатури вводиться ціле число. Вивести на екран всі числа, | |
// на які введене число ділиться без залишку. | |
// 7. З клавіатури вводиться ціле число. Визначити, чи є воно простим. | |
// Просте число ділиться без залишку лише на 1 і на саме себе. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ I.6, I.7\n\n"; | |
unsigned long number; | |
cout << "Будь ласка, введіть невід'ємне ціле число: "; | |
cin >> number; | |
if (number != 0 && number != 1) | |
{ | |
// Ініціалізація переліку дільників: | |
string divisors = "\n1, "; | |
// Кількість дільників числа, крім одиниці та самого себе: | |
unsigned long k = 0; | |
// Цикл для перевірки всіх натуральних чисел менших за введене число: | |
for (unsigned long natural = 2; natural < number; ++natural) | |
{ | |
if (number % natural == 0) { // якщо число – не просте, | |
++k; // то розширюємо перелік дільників | |
// https://en.cppreference.com/w/cpp/string/basic_string/to_string | |
divisors += to_string(natural) + ", "; | |
} | |
} | |
// Додаємо саме число до списку дільників | |
divisors += to_string(number) + " – дільники числа."; | |
cout << divisors << "\n"; | |
// Визначення простоти числа (завдання І.7): | |
if (k == 0) cout << "Число " << number << " – просте.\n"; | |
} | |
else if (number == 1) { // Число 1 – особливе! | |
cout << "\nThe 1 is deficient, highly abundant, " | |
<< "highly composite number.\n"; | |
} | |
else { cout << "\nНуль ділиться на будь-яке число!\n"; } | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧ | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 8. Перевірити, чи є в введеному числі однакові цифри підряд. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ I.8\n\n"; | |
string number; | |
cout << "Введіть число: "; | |
// Тут насправді можна ввести послідовність символів. | |
cin >> number; | |
bool identicalSymbols = false; | |
// Перевіряємо кожну пару сусідніх цифр(символів) | |
for (int i = 1; i < number.length(); ++i) { | |
// https://ru.stackoverflow.com/questions/439119/Длина-строки-length | |
if (number[i] == number[i - 1]) { | |
identicalSymbols = true; | |
break; | |
} | |
} | |
if (identicalSymbols) { | |
cout << "У введеному числі є однакові цифри підряд.\n"; | |
} | |
else { | |
cout << "У введеному числі немає однакових цифр підряд.\n"; | |
} | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧІ | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 9. Визначити, чи є введене число паліндромом. Паліндром — це число, | |
// яке однаково читається як зліва направо, так і справа наліво, | |
// наприклад, 1234321. У цьому завданні (як і в інших завданнях) | |
// не можна використовувати рядки та списки. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ I.9\n\n"; | |
int number; | |
cout << "Введіть число, схоже на паліндром: "; | |
cin >> number; | |
// Завчасно зберігаємо початкове значення, | |
int originalNumber = number; // інакше число 0 не є паліндромом.... | |
int palindrome = 0; | |
while (number > 0) { | |
int digit = number % 10; | |
palindrome = digit + 10 * palindrome; | |
number = number / 10; // тип int, тому ділення цілочисленне | |
} | |
if (originalNumber == palindrome) { // if (number == palindrome) | |
cout << "Число " << originalNumber << " – паліндром!\n"; | |
} | |
else { | |
cout << "Число " << originalNumber << " не є паліндромом.\n"; | |
} | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧІ | |
// Завдання на вкладені цикли (3 задачі) | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 1. Написати програму, що показує таблицю множення (таблиця Піфагора). | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ II.1\n\n"; | |
// Виведення заголовка таблиці (число, на яке множать) | |
cout << " |"; | |
for (int i = 1; i <= 10; ++i) { | |
cout << setw(4) << i; // Вирівнювання стовпців | |
// https://www.youtube.com/watch?v=k7QATXoF1Rw | |
} | |
// Виведення лінії, що розділяє заголовок і саму таблицю | |
cout << "\n" << string(48, '-') << "\n"; | |
// Цикл для формування таблиці множення | |
for (int i = 2; i <= 9; ++i) { | |
// Виведення першої колонки таблиці (число, яке множиться) | |
cout << setw(3) << i << " |"; | |
// Цикл для множення на числа від 1 до 10 | |
for (int j = 1; j <= 10; ++j) { | |
cout << setw(4) << i * j; | |
} | |
// Перехід на новий рядок після виведення всіх множників | |
cout << "\n"; | |
} | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧІ | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 3. Показати на екрані всі восьмизначні числа, цифри яких | |
// не повторюються і які діляться на 12345 без залишку. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ II.3\n\n"; | |
// Ініціалізація цифр восьмизначного числа зліва направо: | |
char cyf1, cyf2, cyf3, cyf4, cyf5, cyf6, cyf7, cyf8; | |
// Вкладені цикли для перебору цифр | |
for (cyf1 = 1; cyf1 <= 9; ++cyf1) { // не може починатися з нуля! | |
for (cyf2 = 0; cyf2 <= 9; ++cyf2) { | |
// Перевіряємо, чи цифра вже використовується | |
if (cyf2 == cyf1) { continue; } | |
for (cyf3 = 0; cyf3 <= 9; ++cyf3) { | |
if (cyf3 == cyf1 || cyf3 == cyf2) { continue; } | |
for (cyf4 = 0; cyf4 <= 9; ++cyf4) { | |
if (cyf4 == cyf1 || cyf4 == cyf2 || cyf4 == cyf3) { | |
continue; | |
} | |
for (cyf5 = 0; cyf5 <= 9; ++cyf5) { | |
if (cyf5 == cyf1 || cyf5 == cyf2 || cyf5 == cyf3 || | |
cyf5 == cyf4) { | |
continue; | |
} | |
for (cyf6 = 0; cyf6 <= 9; ++cyf6) { | |
if (cyf6 == cyf1 || cyf6 == cyf2 || cyf6 == cyf3 || | |
cyf6 == cyf4 || cyf6 == cyf5) { | |
continue; | |
} | |
for (cyf7 = 0; cyf7 <= 9; ++cyf7) { | |
if (cyf7 == cyf1 || cyf7 == cyf2 || | |
cyf7 == cyf3 || cyf7 == cyf4 || | |
cyf7 == cyf5 || cyf7 == cyf6) { | |
continue; | |
} | |
for (cyf8 = 0; cyf8 <= 9; ++cyf8) | |
{ | |
if (cyf8 == cyf1 || cyf8 == cyf2 || | |
cyf8 == cyf3 || cyf8 == cyf4 || | |
cyf8 == cyf5 || cyf8 == cyf6 || | |
cyf8 == cyf7) { | |
continue; | |
} | |
// Формуємо восьмизначне число | |
int div_12345 = cyf1 * pow(10, 7) + | |
cyf2 * pow(10, 6) + cyf3 * pow(10, 5) + | |
cyf4 * pow(10, 4) + cyf5 * pow(10, 3) + | |
cyf6 * pow(10, 2) + cyf7 * 10 + cyf8; | |
// Перевіряємо, чи ділиться число | |
// на 12345 без залишку | |
if (div_12345 % 12345 == 0) { | |
cout << div_12345 << "\n"; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
cout << "\nЦе всі восьмизначні числа, цифри яких не повторюються "; | |
cout << "та які діляться на 12345 без залишку!\n"; | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧІ | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 6. Користувач вводить дату (по окремості день, місяць, рік). | |
// Визначити день тижня, що відповідає введеній даті. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); // Установка кодування для виведення | |
SetConsoleCP(1251); // Установка кодування для введення | |
cout << "\tЗАВДАННЯ II.6\n\n"; | |
int day; | |
string month; // доцільно врахувати варіації в назві місяця | |
int year; | |
cout << "Введіть дату за григоріянським календарем:\n"; | |
cout << "\tчисло: "; | |
cin >> day; | |
cout << "\tмісяць: "; | |
cin >> month; | |
cout << "\tрік: "; | |
cin >> year; | |
// Спочатку розберемося з прийнятними назвами місяців. | |
// Ініціалізація змінної місяця як недійсне значення: | |
int monthNum = -1; | |
if (month == "01" || month == "1" || month == "I" || month == "січня" || | |
month == "січень" || month == "СІЧ" || month == "January") { | |
monthNum = 1; | |
} | |
else if (month == "02" || month == "2" || month == "II" || | |
month == "лютого" || month == "лютий" || month == "ЛЮТ" || | |
month == "February") { | |
monthNum = 2; | |
} | |
else if (month == "03" || month == "3" || month == "III" || | |
month == "березня" || month == "березень" || month == "БЕР" || | |
month == "March") { | |
monthNum = 3; | |
} | |
else if (month == "04" || month == "4" || month == "IV" || | |
month == "квітня" || month == "квітень" || month == "КВІ" || | |
month == "April") { | |
monthNum = 4; | |
} | |
else if (month == "05" || month == "5" || month == "V" || | |
month == "травня" || month == "травень" || month == "ТРА" || | |
month == "May") { | |
monthNum = 5; | |
} | |
else if (month == "06" || month == "6" || month == "VI" || | |
month == "червня" || month == "червень" || month == "ЧЕР" || | |
month == "June") { | |
monthNum = 6; | |
} | |
else if (month == "07" || month == "7" || month == "VII" || | |
month == "липня" || month == "липень" || month == "ЛИП" || | |
month == "July") { | |
monthNum = 7; | |
} | |
else if (month == "08" || month == "8" || month == "VIII" || | |
month == "серпня" || month == "серпень" || month == "СЕР" || | |
month == "August") { | |
monthNum = 8; | |
} | |
else if (month == "09" || month == "9" || month == "IX" || | |
month == "вересня" || month == "вересень" || month == "ВЕР" || | |
month == "September") { | |
monthNum = 9; | |
} | |
else if (month == "10" || month == "X" || month == "жовтня" || | |
month == "жовтень" || month == "ЖОВ" || month == "October") { | |
monthNum = 10; | |
} | |
else if (month == "11" || month == "XI" || month == "листопада" || | |
month == "листопад" || month == "ЛИС" || month == "November") { | |
monthNum = 11; | |
} | |
else if (month == "12" || month == "XII" || month == "грудня" || | |
month == "грудень" || month == "ГРУ" || month == "December") { | |
monthNum = 12; | |
} | |
else { | |
cout << "\nВиправте, будь ласка, назву або порядковий номер місяця!\n"; | |
return 0; | |
} | |
// Перевірка правильності введення дня: | |
if (day < 1 || day > 31) { | |
cout << "\nЗгадайте, скільки днів буває в місяці!\n"; | |
return 0; | |
} | |
if ((day == 31) && (monthNum == 4 || monthNum == 6 || monthNum == 9 || | |
monthNum == 11)) { | |
cout << "\nУ цьому місяці 30 днів. Виправте число або місяць!\n"; | |
return 0; | |
} | |
if ((day == 30 || day == 31) && monthNum == 2) { | |
cout << "\nУ лютому 28 днів або, коли рік високосний, 29 днів.\n"; | |
return 0; | |
} | |
if (day == 29 && monthNum == 2) { | |
// Перевірка, чи рік високосний | |
if (!((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) { | |
cout << "\nПомилка! У звичайному році 29 лютого не існує!\n"; | |
return 0; | |
} | |
} | |
// Перевірка року, зважаючи на обмеження програми: | |
if (year < 1583) { | |
cout << "\n\tSYSTEM ERROR HAS OCCURRED\n\n"; | |
cout << "Молитвами Папи Григорія XIII виберіть пізнішу дату!\n"; | |
return 0; | |
} | |
// Якщо дату введено правильно, то працюємо далі. | |
// Григоріянський календар установили в п'ятницю, 15 жовтня 1582 р.Б. | |
// Можна легко порахувати, скільки днів минуло з суботи, | |
// 1 січня 1583 р.Б. | |
// Відлік днів | |
int days = 0; // ініціалізація відліку | |
days += day - 1; // поправка на перше число | |
// за місяці, які передували заданому місяцю в заданому році: | |
for (int mm = 1; mm < monthNum; ++mm) { | |
if (mm == 4 || mm == 6 || mm == 9 || mm == 11) { | |
days += 30; | |
} | |
else if (mm == 2) { | |
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { | |
days += 29; | |
} | |
else { | |
days += 28; | |
} | |
} | |
else { | |
days += 31; | |
} | |
} | |
// за роки, які передували заданому рокові: | |
for (int yyyy = 1583; yyyy < year; ++yyyy) { | |
if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) { | |
days += 366; // рік переступний! | |
} | |
else { | |
days += 365; | |
} | |
} | |
// Обчислення дня тижня, зважаючи на те, що 1 січня 1583 р.Б. | |
// була субота. | |
int weekDay = (days + 6) % 7; | |
string weekDayName; | |
switch (weekDay) { | |
case 0: | |
weekDayName = "свята неділя"; | |
break; | |
case 1: | |
weekDayName = "понеділок"; | |
break; | |
case 2: | |
weekDayName = "вівторок"; | |
break; | |
case 3: | |
weekDayName = "середа"; | |
break; | |
case 4: | |
weekDayName = "четвер"; | |
break; | |
case 5: | |
weekDayName = "п'ятниця"; | |
break; | |
case 6: | |
weekDayName = "субота"; | |
break; | |
} | |
cout << "\nЦього дня " << weekDayName << ".\n"; | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧІ | |
// Завдання на псевдографіку (2 задачi) | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 1. Показати на екрані рівнобедрений трикутник висотою N. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ III.1\n\n"; | |
int n; | |
cout << "Якої висоти в 'зірочках' повинен бути трикутник? "; | |
cin >> n; | |
cout << "\n"; | |
for (int i = 0; i < n; i++) { | |
cout << "\t"; | |
cout << string(n - i - 1, ' ') << string(2 * i + 1, '^') << "\n"; | |
} | |
/* РОЗВ'ЯЗАННЯ МОВОЮ PYTHON ВІД 6 СІЧНЯ 2025 | |
n = int(input("Якої висоти в 'зірочках' повинен бути трикутник? ")) | |
print("\n") | |
for i in range(n): | |
print("\t" + " " * (n-i-1) + "^" * (2*i + 1)) | |
*/ | |
cout << "\n" << string(80, '-') << "\n"; | |
return 0; | |
} | |
// КІНЕЦЬ КОДУ ЗАДАЧІ | |
// ПОЧАТОК КОДУ ЗАДАЧІ | |
// 2. Показати на екрані каркас паралелепіпеда розмірністю AxBxC. | |
int main() | |
{ | |
SetConsoleOutputCP(1251); | |
cout << "\tЗАВДАННЯ III.2\n\n"; | |
int a, b, c; | |
cout << "Ширина паралелепіпеда: "; | |
cin >> a; | |
cout << "Висота паралелепіпеда: "; | |
cin >> b; | |
cout << "Глибина паралелепіпеда: "; | |
cin >> c; | |
cout << "\n"; | |
// Для кожного y і x перевіряємо, чи потрібно вивести зірочку | |
for (int y = 0; y < b + c; ++y) { | |
for (int x = 0; x < a + c; ++x) { | |
// У паралелепіпеда 12 ребер. Отже, верхні ребра: | |
if (0 <= x && x <= c - 1 && y == c - x - 1) { | |
cout << "*"; | |
} | |
else if (c - 1 <= x && x <= c + a - 2 && y == 0) { | |
cout << "*"; | |
} | |
// Не забути про перетворення графіків функцій та зайві зірочки. | |
else if (a - 1 <= x && x <= c + a - 2 && y == c - (x - a) - 2) { | |
cout << "*"; | |
} | |
else if (0 <= x && x <= a - 1 && y == c - 1) { | |
cout << "*"; | |
} | |
// Бічні ребра | |
else if (x == c - 1 && 0 <= y && y <= b - 1) { | |
cout << "*"; | |
} | |
else if (x == c + a - 2 && 0 <= y && y <= b - 1) { | |
cout << "*"; | |
} | |
else if (x == 0 && c - 1 <= y && y <= c + b - 2) { | |
cout << "*"; | |
} | |
else if (x == a - 1 && c - 1 <= y && y <= c + b - 2) { | |
cout << "*"; | |
} | |
// Нижні ребра | |
else if (0 <= x && x <= c - 1 && y == c - x + b - 2) { | |
cout << "*"; | |
} | |
else if (c - 1 <= x && x <= c + a - 2 && y == b - 1) { | |
cout << "*"; | |
} | |
// Ребра можуть не сходитися у вершинах. Через зайві зірочки! | |
else if (a - 1 <= x && x <= c + a - 2 && y == c - (x - a) + b - 3) | |
{ | |
cout << "*"; | |
} | |
else if (0 <= x && x <= a - 1 && y == c + b - 2) { | |
cout << "*"; | |
} | |
// Всі інші позиції — пробіли | |
else { | |
cout << " "; | |
} | |
} | |
cout << "\n"; | |
} | |
cout << string(80, '-') << "\n"; | |
return 0; | |
} | |
/* | |
Ширина паралелепіпеда: 50 | |
Висота паралелепіпеда: 20 | |
Глибина паралелепіпеда: 10 | |
************************************************** | |
** ** | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
************************************************** * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* ************************************************** | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
* * * * | |
** ** | |
************************************************** | |
*/ | |
// КІНЕЦЬ КОДУ ЗАДАЧІ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment