Пользователь замышляет целое число в спектре от 1 до 1000.Компьютер может
Пользователь замышляет целое число в спектре от 1 до 1000.Компьютер может задавать юзеру вопросы вида : "Ваше число больше М?",на которые человек обязан ответить или"да",или "нет",вводя,соответсвенно,1 либо 0.Составьте программу ,которая позволит компу отгадать число,загаданое юзером за наименьшее количество вопросов.(Пожалуйста, программку без цикла с параметром и ,если возможно,составьте блок-схему)
Задать свой вопрос
Арсений Маслонский
Паскаль? Бейсик?
Аринка Омельчук
паскаль
1 ответ
Фучкина Нелли
Var M,n,A:integer;
Begin
M:=500;
n:=500;
Repeat
WriteLn('0 - меньше ',M,', 1 - больше ',M,', 2 - одинаково ',M);
ReadLn(A);
if n mod 2 = 0 then n:=n div 2
else n:=n div 2 +1;
if A=1 then M:=M+n
else if A=0 then M:=M-n;
Until A = 2;
End.
Пример:
(загадано число 499)
0 - меньше 500, 1 - больше 500, 2 - равно 500
0
0 - меньше 250, 1 - больше 250, 2 - равно 250
1
0 - меньше 375, 1 - больше 375, 2 - равно 375
1
0 - меньше 438, 1 - больше 438, 2 - одинаково 438
1
0 - меньше 470, 1 - больше 470, 2 - равно 470
1
0 - меньше 486, 1 - больше 486, 2 - одинаково 486
1
0 - меньше 494, 1 - больше 494, 2 - одинаково 494
1
0 - меньше 498, 1 - больше 498, 2 - одинаково 498
1
0 - меньше 500, 1 - больше 500, 2 - равно 500
0
0 - меньше 499, 1 - больше 499, 2 - одинаково 499
2
(загадано число 13)
0 - меньше 500, 1 - больше 500, 2 - одинаково 500
0
0 - меньше 250, 1 - больше 250, 2 - равно 250
00
0 - меньше 125, 1 - больше 125, 2 - одинаково 125
0
0 - меньше 62, 1 - больше 62, 2 - равно 62
0
0 - меньше 30, 1 - больше 30, 2 - одинаково 30
0
0 - меньше 14, 1 - больше 14, 2 - равно 14
0
0 - меньше 6, 1 - больше 6, 2 - равно 6
1
0 - меньше 10, 1 - больше 10, 2 - одинаково 10
1
0 - меньше 12, 1 - больше 12, 2 - одинаково 12
1
0 - меньше 13, 1 - больше 13, 2 - одинаково 13
2
(загадано число 1000)
0 - меньше 500, 1 - больше 500, 2 - одинаково 500
1
0 - меньше 750, 1 - больше 750, 2 - одинаково 750
1
0 - меньше 875, 1 - больше 875, 2 - одинаково 875
1
0 - меньше 938, 1 - больше 938, 2 - равно 938
1
0 - меньше 970, 1 - больше 970, 2 - одинаково 970
1
0 - меньше 986, 1 - больше 986, 2 - одинаково 986
1
0 - меньше 994, 1 - больше 994, 2 - одинаково 994
1
0 - меньше 998, 1 - больше 998, 2 - равно 998
1
0 - меньше 1000, 1 - больше 1000, 2 - равно 1000
2
Begin
M:=500;
n:=500;
Repeat
WriteLn('0 - меньше ',M,', 1 - больше ',M,', 2 - одинаково ',M);
ReadLn(A);
if n mod 2 = 0 then n:=n div 2
else n:=n div 2 +1;
if A=1 then M:=M+n
else if A=0 then M:=M-n;
Until A = 2;
End.
Пример:
(загадано число 499)
0 - меньше 500, 1 - больше 500, 2 - равно 500
0
0 - меньше 250, 1 - больше 250, 2 - равно 250
1
0 - меньше 375, 1 - больше 375, 2 - равно 375
1
0 - меньше 438, 1 - больше 438, 2 - одинаково 438
1
0 - меньше 470, 1 - больше 470, 2 - равно 470
1
0 - меньше 486, 1 - больше 486, 2 - одинаково 486
1
0 - меньше 494, 1 - больше 494, 2 - одинаково 494
1
0 - меньше 498, 1 - больше 498, 2 - одинаково 498
1
0 - меньше 500, 1 - больше 500, 2 - равно 500
0
0 - меньше 499, 1 - больше 499, 2 - одинаково 499
2
(загадано число 13)
0 - меньше 500, 1 - больше 500, 2 - одинаково 500
0
0 - меньше 250, 1 - больше 250, 2 - равно 250
00
0 - меньше 125, 1 - больше 125, 2 - одинаково 125
0
0 - меньше 62, 1 - больше 62, 2 - равно 62
0
0 - меньше 30, 1 - больше 30, 2 - одинаково 30
0
0 - меньше 14, 1 - больше 14, 2 - равно 14
0
0 - меньше 6, 1 - больше 6, 2 - равно 6
1
0 - меньше 10, 1 - больше 10, 2 - одинаково 10
1
0 - меньше 12, 1 - больше 12, 2 - одинаково 12
1
0 - меньше 13, 1 - больше 13, 2 - одинаково 13
2
(загадано число 1000)
0 - меньше 500, 1 - больше 500, 2 - одинаково 500
1
0 - меньше 750, 1 - больше 750, 2 - одинаково 750
1
0 - меньше 875, 1 - больше 875, 2 - одинаково 875
1
0 - меньше 938, 1 - больше 938, 2 - равно 938
1
0 - меньше 970, 1 - больше 970, 2 - одинаково 970
1
0 - меньше 986, 1 - больше 986, 2 - одинаково 986
1
0 - меньше 994, 1 - больше 994, 2 - одинаково 994
1
0 - меньше 998, 1 - больше 998, 2 - равно 998
1
0 - меньше 1000, 1 - больше 1000, 2 - равно 1000
2
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
задание экономиоти
Рассмотри ситуацию: человек живёт на Крайнем Се-вере. С помощью каких
Экономика.
Человек живет на Крайнем Севере. С помощью каких благ удовлетворяются потребности
Экономика.
там лежат три яйца.у дома рос клен.Это гнездо сойки.на клёне гнездо
Русский язык.
Тыныштық күйіндегі карусель 35 с-та 3,0 рад/с бұрыштық жылдамдықпен үдей қозғалады.
Разные вопросы.
Сочинение на тему "Русский язык не сможет умереть!"
Математика.
Приветствую!
Меня зовут Станислав, я представляю компанию under.site.
Хотел бы предложить интересное решение
Разные вопросы.
Масса трёх одинаковых пакетов чая 180г чему равна масса
Математика.
Газообразный аммиак объёмом 2.24 л (н.у.) был полностью поглощён 14.68 мл
Химия.
Упражнение 2 Выпишите глаголы и вставьте пропущенные буквы
Русский язык.
Радиус окружности, описанной около равностороннего треугольника, равен 6. Найдите сторону треугольника
Геометрия.
Облако тегов