Milana8211
19.03.2021 01:19

Олимпиадка по информатике про Гулливера​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
SkylloutBrain
22.10.2022 18:27
Поскольку тут речь о последовательности неизвестной длины, вводимой с клавиатуры до появления нуля, а условие позволяет для каждого вводимого числа сразу решить, должно ли оно входить в сумму, задача решается без использования массива и условие "Количество чисел не превышает 1000" - это просто ловушка для наивных с тем, чтобы в случае использования массива длиной 1000 объявить затем решение неэффективным по памяти.

1. Решение на современной версии Паскаля
PascalABC.NET 3.2, сборка 1389 от 01.03.2017
Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadSeqIntegerWhile(n->n<>0)
      .Where(n->(n mod 3=0) and (n mod 10=6)).Sum;
  Writeln('Сумма отобранных чисел равна ',s)   
end.

Пример
15 36 26 72 25 96 83 0
Сумма отобранных чисел равна 132

2. Решение "по-школьному"

var
  n,s:integer;
begin
  s:=0;
  repeat
    Read(n);
    if (n mod 3=0) and (n mod 10=6) then s:=s+n
  until n=0;
  Writeln('Сумма отобранных чисел равна ',s)
end.

Пример
15 36 26 72 25 96 83 0
Сумма отобранных чисел равна 132
0,0(0 оценок)
Ответ:
MisteryHack0
23.01.2020 09:52
Делим группу чисел от 1 до 16 на 2 группы. 12345678 и 9 10 11 12 13 14 15 16
Спрашиваем больше ли 8 загаданное число? Допустим ответили, что не больше.
Тогда берём первую группу чисел и снова делим на 2 группы. 1234 5678. И снова задаём вопрос о величине числа относительно уже 4. Допустим отвечают, что больше.
Теперь берём группу чисел "5678" и снова делим её пополам (56 и 78). Проделываем всё то же самое.
Остаётся всего два числа и тут уже Не трудно будет узнать число. Суммируя число вопросов получается 4.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота