У нас имеются 4 переключателя, расположенных последовательно в строку. Каждый переключатель может быть в одном из двух

У нас имеются 4 переключателя, расположенных последовательно в строку. Каждый переключатель может быть в одном из двух состояний: выключен (обозначается нулем) и включен (обозначается единицей). Свет будет включен, если хотя бы два переключателя включены, при этом если два переключателя включены, то они не должны находиться рядом друг с другом. Напишите программу на C++, которая принимает четыре числа, каждое из которых может быть либо 0, либо 1. Когда программа запустится, она должна выводить YES, если свет загорится, и NO в противном случае.

Пример 1:
Входные данные: 1 0 1 0
Выходные данные: YES

Пример 2:
Входные данные: 0 0 1 1
Выходные данные: NO

Пример 3:
Входные данные: 1 0 0 1
Выходные данные:
Радуга

Радуга

Алгоритм решения этой задачи можно описать следующим образом:

1. Создайте функцию, принимающую четыре числа типа int и возвращающую значение типа bool.
2. Внутри функции определите переменную count, которая будет считать количество переключателей, находящихся в состоянии "включено".
3. Используйте условные операторы if и else для проверки состояния переключателей и увеличивайте счетчик, count, каждый раз, когда переключатель находится в состоянии "включено".
4. Проверьте значение счетчика count:
а. Если count меньше 2, то верните false, так как свет не загорится.
b. Если count равно 2 и переключатели не находятся рядом друг с другом, то также верните true, так как свет загорится.
c. Во всех остальных случаях верните false.
5. В главной части программы прочитайте четыре числа входных данных.
6. Вызовите функцию, передав ей считанные значения.
7. Проверьте, что функция вернула, и выведите "YES", если свет загорится, или "NO" в противном случае.

Вот пример реализации данного алгоритма на языке C++:

cpp
#include

bool checkLight(int switch1, int switch2, int switch3, int switch4) {
int count = 0;

if (switch1 == 1) {
count++;
}

if (switch2 == 1) {
count++;
}

if (switch3 == 1) {
count++;
}

if (switch4 == 1) {
count++;
}

if (count < 2) {
return false;
}

if (count == 2 && (switch1 != 1 || switch2 != 1) && (switch2 != 1 || switch3 != 1) && (switch3 != 1 || switch4 != 1)) {
return true;
}

return false;
}

int main() {
int switch1, switch2, switch3, switch4;

std::cout << "Введите состояние четырех переключателей (0 или 1): ";
std::cin >> switch1 >> switch2 >> switch3 >> switch4;

if (checkLight(switch1, switch2, switch3, switch4)) {
std::cout << "YES\n";
} else {
std::cout << "NO\n";
}

return 0;
}


При запуске программы она будет запрашивать состояние четырех переключателей и выводить "YES", если свет загорится, или "NO" в противном случае.

Например, для входных данных 1 0 1 0 программа выведет "YES", так как свет загорится, имея два включенных переключателя и они не находятся рядом друг с другом.
Знаешь ответ?
Задать вопрос
Привет!
hello