Объяснение:
Никогда такое не решал, но попробую
На выходе F=1
Идем с конца
До него & (конъюнктор) - это логическое AND
По таблице истинности находим, что На выходе 1, только если на входе 1 и 1, значит А=1
Теперь идем от А. Сначала инверсия, получаем 0
Далее 0 AND B и мы должны получить 1. И тут у меня ломается мозг.
0 AND что угодно - получим 0, а если так, то и F=0 станет.
Вот и логическая бомба.
Решения не вижу у этой задачи, если F=1
Еще функцию надо
F=(A)AND((NOT(A))AND(B))
1=1AND1, значит A=1 и
(NOT(A))AND(B)=1
тогда B=1 и NOT(A)=1.
но NOT(A)=1 и А=1 не может быть. Мы пришли к противоречию.
Утерян "лучший ответ". Нашедшему вернуть.
#include <iostream>
#include <string>
#define N 5
using namespace std;
int count_flat = 0;
struct Flat {
int n_rooms;
int square;
int floor;
string address;
double price;
void PrintInfo() {
cout << "\nКоличество комнат: " << n_rooms << "\nПлощадь " << square << "\nЭтаж:" << floor << "\nАдрес " << address << "\nЦена: " << price;
}
void InputInfo() {
cout << "Количество комнат: ";
cin >> n_rooms;
cout << "Площадь: ";
cin >> square;
cout << "Этаж: ";
cin >> floor;
cout << "Адрес: ";
getline(cin, address);
cout << "Цена: ";
cin >> price;
void PrintChecksInfo(int number) {
if (number >= price) {
count_flat++;
PrintInfo();
};
signed main() {
setlocale(LC_ALL, "Rus");
int choice;
Flat mas[N];
for (int i = 0; i < N; i++)
mas[i].InputInfo();
cout << "Введите стоимость: ";
cin >> choice;
for (int i = 0; i < N; i++) {
mas[i].PrintChecksInfo(choice);
if (count_flat <= 0)
cout << "Таких квартир нет!";
return 0;
Объяснение:
Никогда такое не решал, но попробую
На выходе F=1
Идем с конца
До него & (конъюнктор) - это логическое AND
По таблице истинности находим, что На выходе 1, только если на входе 1 и 1, значит А=1
Теперь идем от А. Сначала инверсия, получаем 0
Далее 0 AND B и мы должны получить 1. И тут у меня ломается мозг.
0 AND что угодно - получим 0, а если так, то и F=0 станет.
Вот и логическая бомба.
Решения не вижу у этой задачи, если F=1
Еще функцию надо
F=(A)AND((NOT(A))AND(B))
1=1AND1, значит A=1 и
(NOT(A))AND(B)=1
тогда B=1 и NOT(A)=1.
но NOT(A)=1 и А=1 не может быть. Мы пришли к противоречию.
Утерян "лучший ответ". Нашедшему вернуть.
#include <iostream>
#include <string>
#define N 5
using namespace std;
int count_flat = 0;
struct Flat {
int n_rooms;
int square;
int floor;
string address;
double price;
void PrintInfo() {
cout << "\nКоличество комнат: " << n_rooms << "\nПлощадь " << square << "\nЭтаж:" << floor << "\nАдрес " << address << "\nЦена: " << price;
}
void InputInfo() {
cout << "Количество комнат: ";
cin >> n_rooms;
cout << "Площадь: ";
cin >> square;
cout << "Этаж: ";
cin >> floor;
cout << "Адрес: ";
getline(cin, address);
cout << "Цена: ";
cin >> price;
}
void PrintChecksInfo(int number) {
if (number >= price) {
count_flat++;
PrintInfo();
}
}
};
signed main() {
setlocale(LC_ALL, "Rus");
int choice;
Flat mas[N];
for (int i = 0; i < N; i++)
mas[i].InputInfo();
cout << "Введите стоимость: ";
cin >> choice;
for (int i = 0; i < N; i++) {
mas[i].PrintChecksInfo(choice);
}
if (count_flat <= 0)
cout << "Таких квартир нет!";
return 0;
}