М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
makhastiirisba
makhastiirisba
04.03.2022 07:56 •  Информатика

Какое минимально количество пар скобок необходимо поставить в выражении, записанном на языке си, чтобы его значение было равно 48? 4< < 2*9> > 2+1

👇
Ответ:
дядяррррр
дядяррррр
04.03.2022
(4<<2)*((9>>2)+1)
1) 4<<2 = 4*2*2=16 (сдвиг влево на каждый разряд удваивает число)
2) 9>>2 = 2 (сдвиг вправо на каждый разряд уменьшает число вдвое, остаток теряется)
3) 2+1 = 3
4) 16 * 3 = 48
Итого, три пары скобок
4,5(43 оценок)
Открыть все ответы
Ответ:
Azdes
Azdes
04.03.2022
Язык не указан, Default-Language это C. На нём и напишу.
1.
#include <stdio.h>
int main() {
    int n;
    scanf("%d", &n);
    if (n % 10 == 4 || n % 10 == 7 || n / 10 == 4 || n / 10 == 7)
        printf("YES\n");
    else
        printf("NO\n");
    return 0;
}
Для порядку скажу что на Perl это можно реализовать проще.
#!perl
%h { 4 => 0, 7 => 0};
<>;
if (exists $h{$_%10} || exists $h{$_/10}) {
    print "YES\n";
else {
    print "NO\n";
}
Но мы ушли от темы. Итак, 2. Тут всё ещё проще:
#include <stdio.h>
int main() {
    int n;
    scanf("%d", &n);
    if (!(n % 3))
        printf("Multiple of 3\n");
    else
        printf("Not multiple of 3\n");
    if (n % 10 == 3)
        printf("Ends by 3\n");
    else
        printf("Not ends by 3\n");
    return 0;
}
Тут более простой реализации на другом известном мне языке нету, так что приводить дополнительно ничего не буду.
4,4(68 оценок)
Ответ:
nastushka162003
nastushka162003
04.03.2022
Сначала надо избавиться от ошибок (пункт №3)
иначе не сможем выполнить 1 и 2 пункт задания.
  Исправляем if N mod 10 k:=N mod 10; на if (N mod 10 < k) then k:=N mod 10;
  Исправляем N:N div 10; на N:= N div 10;
 
После исправления ошибок при вводе 537 получим 3
Программа будет работать правильно для любого числа,
у которого вторая цифра слева меньше первой цифры, например:
7193

Чтобы программа работала правильно для всех чисел надо
изменить это: while N > 10 do на while N > 0 do

После всех исправлений код программы стал таким:
var
  N, k: integer;
begin
  readln(N);
  k := 9;
  while N > 10 do
  begin
    if (N mod 10 < k) then k := N mod 10;
    N := N div 10;
  end;
  write(k)
end.
4,5(15 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ