На с++ с тернарной операциейДаны три целых числа. Требуется определить, превосходит
На с++ с тернарной операцией
Даны три целых числа. Нужно найти, превосходит ли максимум этих чисел удвоенную сумму 2-ух других либо нет.
Формат входных данных
С клавиатуры вводятся три целых числа через пробел, не превосходящие по модулю 105.
Формат выходных данных
Выведите YES, если максимум превосходит удвоенную сумму 2-ух иных чисел, и NO в неприятном случае.
Примечания
Если наибольший элемент равен двойной сумме, то требуется вывести также YES
Примеры
входные данные выходные данные
3 5 1
NO
3 4 14
YES
Метод решения
Представим, что 1-ое введённое число - наибольшее. Тогда в ans мы будем беречь 1, если 1-ое число не меньше двойной суммы второго и третьего, и 0, если меньше.
Проверим - если 2-ое число больше первого, мы запомним, что наибольшее число у нас 2-ое и пересчитаем ответ: 1, если 2-ое число не меньше двойной суммы первого и третьего, 0 иначе.
Точно так же проверим третье число: если оно больше нашего наибольшего, обновим его и ответ.
После этого мы выведем "YES", если в ans хранится 1, "NO" иначе.
Код
include lt;bits/stdc++.hgt;
using namespace std;
int main()
int a, b, c;
cin gt;gt; a gt;gt; b gt;gt; c;
int mx = a;
int ans = (a gt;= (b + c) * 2 ? 1 : 0);
if (b gt; mx)
mx = b;
ans = (b gt;= (a + c) * 2 ? 1 : 0);
if (c gt; mx)
mx = c;
ans = (c gt;= (a + b) * 2 ? 1 : 0);
cout lt;lt; (ans == 1 ? "YES" : "NO") lt;lt; endl;
return 0;
Другие варианты
1) int + тернарный оператор -gt; bool
include lt;bits/stdc++.hgt;
using namespace std;
int main()
int a, b, c;
cin gt;gt; a gt;gt; b gt;gt; c;
int mx = a;
bool ans = (a gt;= (b + c) * 2);
if (b gt; mx)
mx = b;
ans = (b gt;= (a + c) * 2);
if (c gt; mx)
mx = c;
ans = (c gt;= (a + b) * 2);
cout lt;lt; (ans ? "YES" : "NO") lt;lt; endl;
return 0;
2) string ans
include lt;bits/stdc++.hgt;
using namespace std;
int main()
int a, b, c;
cin gt;gt; a gt;gt; b gt;gt; c;
int mx = a;
string ans = (a gt;= (b + c) * 2 ? "YES" : "NO");
if (b gt; mx)
mx = b;
ans = (b gt;= (a + c) * 2 ? "YES" : "NO");
if (c gt; mx)
mx = c;
ans = (c gt;= (a + b) * 2 ? "YES" : "NO");
cout lt;lt; ans lt;lt; endl;
return 0;
-
Вопросы ответы
Статьи
Информатика
Статьи
Разные вопросы.
Разные вопросы.
Математика.
Русский язык.
Русский язык.
Разные вопросы.
Қазақ тiлi.
Английский язык.
Математика.
История.