В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
ks907216
ks907216
21.10.2021 22:39 •  Информатика

На с++ с тернарной операцией даны три целых числа. требуется определить, превосходит ли максимум этих чисел удвоенную сумму двух других или нет. формат входных данных с клавиатуры вводятся три целых числа через пробел, не превосходящие по модулю 105. формат выходных данных выведите «yes», если максимум превосходит удвоенную сумму двух других чисел, и «no» в противном случае. примечания если максимальный элемент равен удвоенной сумме, то требуется вывести также yes примеры входные данные выходные данные 3 5 1 no 3 4 14 yes

Ответ:
nastiamakeeva0
nastiamakeeva0
09.10.2020 10:58
Алгоритм решения

Предположим, что первое введённое число - максимальное. Тогда в ans мы будем хранить 1, если первое число не меньше удвоенной суммы второго и третьего, и 0, если меньше.

Проверим - если второе число больше первого, мы запомним, что максимальное число у нас второе и пересчитаем ответ: 1, если второе число не меньше удвоенной суммы первого и третьего, 0 иначе.

Точно так же проверим третье число: если оно больше нашего максимального, обновим его и ответ.

После этого мы выведем "YES", если в ans хранится 1, "NO" иначе.


Код

#include <bits/stdc++.h>

using namespace std;

int main() {

   int a, b, c;

   cin >> a >> b >> c;

   int mx = a;

   int ans = (a >= (b + c) * 2 ? 1 : 0);

   if (b > mx) {

       mx = b;

       ans = (b >= (a + c) * 2 ? 1 : 0);

   }

   if (c > mx) {

       mx = c;

       ans = (c >= (a + b) * 2 ? 1 : 0);

   }

   cout << (ans == 1 ? "YES" : "NO") << endl;

   return 0;

}


Другие варианты1) int + тернарный оператор -> bool

#include <bits/stdc++.h>

using namespace std;

int main() {

   int a, b, c;

   cin >> a >> b >> c;

   int mx = a;

   bool ans = (a >= (b + c) * 2);

   if (b > mx) {

       mx = b;

       ans = (b >= (a + c) * 2);

   }

   if (c > mx) {

       mx = c;

       ans = (c >= (a + b) * 2);

   }

   cout << (ans ? "YES" : "NO") << endl;

   return 0;

}


2) string ans

#include <bits/stdc++.h>

using namespace std;

int main() {

   int a, b, c;

   cin >> a >> b >> c;

   int mx = a;

   string ans = (a >= (b + c) * 2 ? "YES" : "NO");

   if (b > mx) {

       mx = b;

       ans = (b >= (a + c) * 2 ? "YES" : "NO");

   }

   if (c > mx) {

       mx = c;

       ans = (c >= (a + b) * 2 ? "YES" : "NO");

   }

   cout << ans << endl;

   return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?