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

Z. угадай число имя входного файла: стандартный ввод имя выходного файла: стандартный вывод ограничение по времени: 2 секунды ограничение по памяти: 256 мегабайт это интерактивная . в процессе тестирования ваша программа будет взаимодействовать с программой жюри с использованием стандартных потоков ввода/вывода. программа жюри загадала число от 1 до n, цель вашей программы — отгадать его. для этого ваша программа сообщает свои догадки программе жюри, а программа жюри отвечает, является ли загаданное число большим, меньшим или равным сделанной догадке. выполнено неравенство 1 ≤ n ≤ 109 . ваша программа должна сделать не более 30 догадок. протокол взаимодействия с программой жюри сначала ваша программа должна прочитать из стандартного потока ввода число n. затем протокол общения следующий: ваша программа выводит в стандартный поток вывода одну строку, содержащую число — свою догадку о загаданном числе. делайте сброс буфера потока вывода после каждой догадки. для этого используйте • flush(output) в паскале или delphi; • fflush(stdout) или cout.flush() в с/c++; • system.out.flush() в java. • sys.out.flush() в python. после этого программа должна считать из стандартного потока ввода одно число: ответ программы жюри. возможны следующие ответы: • 1 — загаданное число больше последней догадки; • −1 — загаданное число меньше последней догадки; • 0 — последняя догадка верна. считав 0, ваша программа должна завершиться. пример стандартный ввод стандартный вывод 5 -1 1 0 3 1 2

👇
Ответ:
дарья3ви
дарья3ви
23.09.2020
Var
    n, l, r, m, k: integer;
begin
    read(n);
    l := 1;
    r := n;
    while (r - l > 1) do
    begin
        m := (l + r) div 2;
        writeln(m);
        read(k);
        if (k = 0) then
            halt(0)
        else if (k = 1) then
            l := m
        else
            r := m;
    end;
    writeln(l);
    read(k);
    if (k <> 0) then
        writeln(r);
end.
4,7(69 оценок)
Открыть все ответы
Ответ:
julka19981
julka19981
23.09.2020
((3 + 1) * 3) * 3 = 36 ((3) * 3 + 1 + 1 + 1) * 3 = 36 ((3) * 3 + 1 + 1) * 3 + 1 + 1 + 1 = 36 ((3) * 3 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 = 36 ((3) * 3) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 = 36 (3 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 (3) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 36 ответ 16 def f0(number, log) #   v = 1   n = number + v   log += " + #{v}"   # log += "[" + n.to_s + "] "   return [n, log] end def f1(number, log) #   v = 3   n = number * v   log = "(#{log}) * #{v}"   # log += "[" + n.to_s + "] "   return [n, log] end def countways(start_num, end_num, op_numbers, max_steps = 0)   ways = {}   ways.store(start_num.to_s, start_num)   max_steps = max_steps == 0 ? (start_num - end_num).abs : max_steps   count = 0   for steps in 1..max_steps           # puts "steps = #{steps}"           new_ways = {}           ways.each_pair{|log, num|                   for k in 0..op_numbers-1                           num1, log1 = f0(num, log) if k == 0                           num1, log1 = f1(num, log) if k == 1                           num1, log1 = f2(num, log) if k == 2                           if num1 == end_num                                   # and log.include? ('[8]')                           then                                   log1 += " = " + end_num.to_s                                   count += 1                                   puts log1                           elsif num1.between? (start_num, end_num)                                   new_ways.store(log1, num1)                           else                                   # log1 = log1 + " = " + num1.to_s + " bad "                                   # puts log1                           end                   end           }           # p [steps, ways.size, new_ways.size]           ways = new_ways   end   return count end
4,6(29 оценок)
Ответ:
ДаняКашин
ДаняКашин
23.09.2020
Этот навык у программистов прокачан в оба конца — в сторону компьютера и в сторону человека. С одной стороны, работа программиста заключается в том, чтобы составлять понятные инструкции живым и неживым сущностям — человеку и машине. Это умение объяснять всё доступным логическим языком здорово в жизни — как в общении, так и в переписке. С другой стороны, разработчик также должен уметь понимать язык людей и машин. Этот навык делает его хорошим слушателем и читателем, который стремится вникнуть в суть разговора и текста, отсекая при этом всё лишнее.
4,4(34 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ