Цей алгоритм використовується, якщо для деякої послідовності чисел потрібно на деяке запитання відповісти: „так” чи „ні”.
Дано n цілих чисел. Знайти в цій послідовності кількість непарних чисел.
Дано: кількість чисел та самі числа.
Знайти: Кількість непарних чисел.
Вхідні:
Вихідні:
Проміжні:
#include <iostream>
using namespace std;
int main()
{
int i, n, a, k = 0; // i - лічильник, n - кількість чисел, a - поточне число, k - лічильник непарних
cin >> n; // Введення кількості чисел
// Цикл для обробки n чисел
for (i = 1; i <= n; i++)
{
cin >> a; // Введення поточного числа
// Перевірка на непарність
if (a % 2 != 0)
{
k++; // Збільшення лічильника непарних чисел
}
}
cout << k; // Виведення кількості непарних чисел
return 0;
}
| № | Ввід | Відповідь | Пояснення |
|---|---|---|---|
| 1 | 5 8 2 6 4 8 | 0 | 5 – кількість чисел. 8 2 6 4 8 – самі числа. Серед них немає непарних, тому 0 |
| 2 | 4 1 6 8 4 | 1 | 4 – кількість чисел. 1 6 8 4 – самі числа. Серед них є одне непарне, тому 1 |
| 3 | 6 1 3 2 4 3 9 | 3 | 6 – кількість чисел. 1 3 2 4 3 9 – самі числа. Серед них є три непарних, тому 3 |
Для того, щоб відповісти на питання, чи є в цій послідовності хоча б одне непарне число, потрібно перевірити значення k. Якщо k>0, то відповідь "так", у іншому випадку "ні".
#include <iostream>
using namespace std;
int main()
{
int i, n, a, k = 0; // i - лічильник, n - кількість чисел, a - поточне число, k - лічильник непарних
cin >> n; // Введення кількості чисел
// Цикл для аналізу n чисел
for (i = 1; i <= n; i++)
{
cin >> a; // Введення поточного числа
if (a % 2 != 0) // Перевірка на непарність
{
k++; // Інкрементація лічильника
}
}
// Виведення результату
if (k > 0) {
cout << "yes"; // Якщо знайдено непарні числа
} else {
cout << "no"; // Якщо непарних чисел немає
}
return 0;
}
Для того, щоб відповісти на питання, чи всі числа в цій послідовності непарні, потрібно перевірити значення k. Якщо k=n, то відповідь "так", у іншому випадку "ні".
#include <iostream>
using namespace std;
int main()
{
int i, n, a, k = 0; // i - лічильник, n - кількість чисел, a - поточне число, k - лічильник непарних чисел
cin >> n; // Введення кількості чисел
// Перебір усіх введених чисел
for (i = 1; i <= n; i++)
{
cin >> a; // Введення поточного числа
if (a % 2 != 0) // Перевірка, чи число непарне
{
k++; // Збільшення лічильника непарних чисел
}
}
// Перевірка, чи всі числа непарні
if (k == n) {
cout << "yes"; // Якщо всі числа непарні
} else {
cout << "no"; // Якщо хоча б одне число парне
}
return 0;
}
Існує ще один спосіб відповісти на ці питання, без рахування кількості, з використанням логічних змінних - перемикачей.
Дано n цілих чисел. З’ясуйте, чи є в цій послідовності хоча б одне непарне число.
Дано: кількість чисел та самі числа.
Знайти: Якщо серед чисел є непарні, то надрукувати yes, якщо немає, то надрукувати no.
Вхідні:
Вихідні:
Проміжні:
#include <iostream>
using namespace std;
int main()
{
int i, n, a; // i - лічильник, n - кількість чисел, a - поточне число
bool f = false; // Прапорець наявності непарних чисел
cin >> n; // Введення кількості чисел
// Перевірка кожного числа
for (i = 1; i <= n; i++)
{
cin >> a; // Введення числа
if (a % 2 != 0) // Якщо число непарне
{
f = true; // Встановлюємо прапорець
}
}
// Виведення результату
if (f) {
cout << "yes"; // Якщо знайдено хоча б одне непарне число
} else {
cout << "no"; // Якщо всі числа парні
}
return 0;
}
| № | Ввід | Відповідь | Пояснення |
|---|---|---|---|
| 1 | 5 8 2 6 4 8 | No | 5 – кількість чисел. 8 2 6 4 8 – самі числа. Серед них немає непарних, тому No |
| 2 | 4 1 6 8 4 | Yes | 4 – кількість чисел. 1 6 8 4 – самі числа. Серед них є непарні, тому Yes |
| 3 | 6 1 3 2 4 3 9 | Yes | 6 – кількість чисел. 1 3 2 4 3 9 – самі числа. Серед них є три непарні, тому Yes |
Дано n чисел. З’ясуйте, чи всі вони непарні.
Дано: кількість чисел та самі числа.
Знайти: Якщо всі числа непарні, то надрукувати yes, якщо є парні, то надрукувати no.
Вхідні:
Вихідні:
Проміжні:
#include <iostream>
using namespace std;
int main()
{
int i, n, a; // i - лічильник, n - кількість чисел, a - поточне число
bool f = true; // Прапорець: чи всі числа непарні (початково true)
cin >> n; // Введення кількості чисел
// Перевірка кожного введеного числа
for (i = 1; i <= n; i++)
{
cin >> a; // Введення числа
if (a % 2 == 0) // Якщо число парне
{
f = false; // Встановлюємо прапорець у false
}
}
// Виведення результату
if (f) {
cout << "yes"; // Якщо всі числа непарні (f залишився true)
} else {
cout << "no"; // Якщо знайдено хоча б одне парне число
}
return 0;
}
| № | Ввід | Відповідь | Пояснення |
|---|---|---|---|
| 1 | 5 1 2 3 4 5 | No | 5 – кількість чисел. 1 2 3 4 5 – самі числа. Вони не всі непарні, тому No |
| 2 | 4 1 5 7 2 | No | 4 – кількість чисел. 1 5 7 2 – самі числа. Серед них є парне, тому No |
| 3 | 6 1 3 5 7 9 3 | Yes | 6 – кількість чисел.1 3 5 7 9 3 – самі числа. Вони всі непарні, тому Yes |
|