Шеина
?>

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

Информатика

Ответы

vitaliy
Алгоритм решения

Предположим, что первое введённое число - максимальное. Тогда в 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;

}

aci2003

ответ: (в начале текст испорчен, непонятно из какой системы перевоить)

36₁₀ = 0*2⁰ + 0*2¹ + 1*2² + 0*2³ + 0*2⁴ + 1*2⁵ = 100100₂

197₁₀ = 5*8⁰ + 0*8¹ + 3*8² = 305₈

681₁₀ = 9*16⁰ + 10*16¹ + 2*16² = 2A9₁₆

100100110101₂ = 1*2⁰ + 0*2¹ + 1*2² + 0*2³ + 1*2⁴ + 1*2⁵ + 0*2⁶ + 0*2⁷ + 1*2⁸ + 0*2⁹ + 0*2¹⁰ + 1*2¹¹ = 2357₁₀

2357₁₀ = 5*8⁰ + 6*8¹ + 4*8² + 4*8³ = 4465₈

1011011₂ = 1*2⁰ + 1*2¹ + 0*2² + 1*2³ + 1*2⁴ + 0*2⁵ + 1*2⁶ = 91₁₀

91₁₀ = 3*8⁰ + 3*8¹ + 1*8² = 133₈

245₈ = 5*8⁰ + 4*8¹ + 2*8² = 165₁₀

165₁₀ = 1*2⁰ + 0*2¹ + 1*2² + 0*2³ + 0*2⁴ + 1*2⁵ + 0*2⁶ + 1*2⁷ = 10100101₂

573₈ = 3*8⁰ + 7*8¹ + 5*8² = 379₁₀

379₁₀ = 1*2⁰ + 1*2¹ + 0*2² + 1*2³ + 1*2⁴ + 1*2⁵ + 1*2⁶ + 0*2⁷ + 1*2⁸ = 101111011₂

1BA7₁₆ = 7*16⁰ + A*16¹ + B*16² + 1*16³ = 7079₁₀

7079₁₀ = 1*2⁰ + 1*2¹ + 1*2² + 0*2³ + 0*2⁴ + 1*2⁵ + 0*2⁶ + 1*2⁷ + 1*2⁸ + 1*2⁹ + 0*2¹⁰ + 1*2¹¹ + 1*2¹² = 1101110100111₂

ACE₁₆ = E*16⁰ + C*16¹ + A*16² = 2766₁₀

2766₁₀ = 0*2⁰ + 1*2¹ + 1*2² + 1*2³ + 0*2⁴ + 0*2⁵ + 1*2⁶ + 1*2⁷ + 0*2⁸ + 1*2⁹ + 0*2¹⁰ + 1*2¹¹ = 101011001110₂

B68₁₆ = 8*16⁰ + 6*16¹ + B*16² = 2920₁₀

2920₁₀ = 0*8⁰ + 5*8¹ + 5*8² + 5*8³ = 5550₈

FE8₁₆ = 8*16⁰ + E*16¹ + F*16² = 4072₁₀

4072₁₀ = 0*8⁰ + 5*8¹ + 7*8² + 7*8³ = 7750₈

655₈ = 5*8⁰ + 5*8¹ + 6*8² = 429₁₀

429₁₀ = 13*16⁰ + 10*16¹ + 1*16² = 1AD₁₆

743₈ = 3*8⁰ + 4*8¹ + 7*8² = 483₁₀

483₁₀ = 3*16⁰ + 14*16¹ + 1*16² = 1E3₁₆

f-d-a-14

Объяснение:

Задача 1.  

Определить объем видеопамяти в килобайтах для графического файла  размером 640х480 пикселей и палитрой из 32 цветов.

Найдем сколько бит нужно для хранения значения цвета каждого пикселя. Если палитра составляет 32 цвета то для этого достаточно 2⁵=32 (степень 5, значит 5 бит). Всего у нас 640*480=307200 пикселей, на каждый нужно 5 бит, всего потребуется 307200*5=1536000 бит.

В одном байте 8 бит, значит нам нужно 1536000/8=192000 байт. В килобайте 1024 байта, следовательно для нашего файла нам потребуется объем видеопамяти 192000/1024= 187,5=188 кБ

Задача 2.

После преобразования графического изображения количество цветов  уменьшилось с 256 до 32. Во сколько раз уменьшился объем занимаемой им  памяти?

Изначально, для хранения 256 цветов требовалось 8 бит для каждого пикселя (2⁸=256). После преобразования, для каждого пикселя количество цветов уменьшилось до 32, и для их хранения нужно всего 5 бит (считали в первой задаче)

Найдем во сколько раз уменьшился объем занимаемой памяти:

8/5=1,6

То есть количество хранимой информации уменьшилось в 1,6 раза, во столько же раз уменьшился и необходимый объем памяти.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

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

Популярные вопросы в разделе

skalegin68
kireevatatiana
fymukham
miss1380
multikbo3049
palchiknr
Yelena-Svetlana
Letajushaya362
info8
samira57
Merkuloff78
klepa-79
Elizavetaborisovna1992
choia
sales5947