Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 976 ответов!

Задача Z. Угадай число

10-11 класс

Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 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

4umak2001 07 окт. 2013 г., 22:23:53 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Leralovekiss
08 окт. 2013 г., 1:08:15 (10 лет назад)

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.

Ответить

Другие вопросы из категории

25 баллов инфа?

Муниципальный этап олимпиады по информатике проводился для учеников
7–11-х классов. Все ученики участвовали в общем конкурсе. Каждый
участник олимпиады мог набрать от 0 до 400 баллов. По положению об
олимпиаде победителем признаётся участник, набравший наибольшее
количество баллов, при условии, что им набрано больше половины
возможных баллов. Победителей может быть несколько, если это количество
баллов наберут несколько человек; а может и не быть совсем, если никто не
наберёт больше половины.
Напишите эффективную по времени работы и по используемой памяти
программу (укажите используемую версию языка программирования,
например Borland Pascal 7.0), которая будет определять фамилию и имя
лучшего участника, не ставшего победителем олимпиады. Если следующий
за баллом победителей один и тот же балл набрали несколько человек или
если победителей нет, а лучших участников несколько (в этом случае они же
являются искомыми), то должно выдаваться только число искомых
участников. Гарантируется, что искомые участники (участник) имеются.
На вход программе сначала подаётся число участников олимпиады N
(N<10000).
В каждой из следующих N строк находится результат одного из участников
олимпиады в следующем формате:
<Фамилия> <Имя> <класс> <баллы>,
где <Фамилия> – строка, состоящая не более чем из 20 непробельных
символов; <Имя> – строка, состоящая не более чем из 15 непробельных
символов; <класс> – число от 7 до 11; <баллы> – целое число от 0 до 400
набранных участником баллов. <Фамилия> и <Имя>, <Имя> и <класс>,
а также <класс> и <баллы> разделены одним пробелом. Пример входной
строки:
Иванов Пётр 10 275
Программа должна выводить через пробел Фамилию и Имя искомого
участника или их число. Пример выходных данных:
Кузнецов Иван
Второй вариант выходных данных:
4

Доброе утро. У меня и вам вопрос особенно к програмистам. Подскажите пожалуйста я создал свой сайт и выложил туда фильмы. Подскажите пожалуйста как

сделать так чтобы когда другие люди заходили на него и качали фильми, а мне шли за ето деньги.

Решите пож

Информатика

Читайте также

Помогите, пожалуйста, составить алгоритм для следующей задачи: Вводятся четыре числа. Известно, что 3 из них равны, а 4-ое отличается от 3-ех других.

Нужно выдать число, которое отличается от других равных, при этом, используя ровно две операции сравнения. Я пытался решить эту задачу и через максимум-минимум, и через условия, но везде натыкался на грабли. Помогите, пожалуйста, разобраться. Заранее благодарю! Перед выставлением решения, рассмотрите следующие варианты: "2 4 4 4", "2 3 2 2 ", "-3 -3 -2 -3", "-4 -4 -4 -5".

Всем привет! Помогите пожалуйста по информатике. Задача: ввести целое число и найти сумму его цифр. Пример: введите целое число:1234. Сумма цифр числа 1

234 равна 10. Задача: сумма цифр ввести целое число и определить верно ли, что в его записи есть 2 одинаковые цифры. Пример: введите целое число 1234 нет введите целое число 1224 да

Составьте программы "Угадай число от 1 до 10"

И придумайте похожую задачу, только немного сложней. :)
Сорь за качество.

4 задачи: ввести натуральное число и определить, верно ли, что сумма цифр равна 10 (через repeat и until)//// ввести натуральное

число и определить, какие цифры встречаются несколько раз (через repeat и until)///

ввести целое число и найти сумму его цифр (через while)

ввести целое число и определить , верно ли, что в его записи есть две одинаковые цифры(через while)

всё через паскаль абс

1)Загадано число от 1 до 100.Загадавший на все вопросы отвечает только "да" или "нет".Какое наименьшее число вопросов нужно задать, чтобы

гарантированно угадать число? 2)В велокроссе участвуют 119 спорстменов.Специальное устройство регистрирует прохождение каждым из участников промежуточного финиша, записывая его номер с использованием минимально возможного количества бит, одинакового для каждого спортсмена.Каков информационный объем в битах сообщения, записанного устройством, после того как промежуточный финиш прошли 70 велосипедистов? Помогите пожалуйста, нужно решение как можно скорее!



Вы находитесь на странице вопроса "Задача Z. Угадай число", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.