Ведущим задумано число в диапазоне от 0 до 1000.какое минимальное количество вопросов надо задать,чтобы угадать в каком десятке находится число (ответы ведущего "больше" или "меньше")
10 вопросов это бинарной сортировки сначала делим 1000 на 2 задаем вопрос больше или меньше потом если больше то отрезок будет от 500 до 1000 (1000-500)/2+500=750 -новый вопрос потом еще вопрос короше так: A-начала отрезка(сначала A=1) B-конец отрезка(B=1000) найдем середину R=(B-A)/2+A-(возмем целое) потом если больше то A=R иначе B=R потом так продолжаем до тех пор пока A небудет равнятся B
Написал на VBS, тот же бейсик, который есть в школах
dim years years = inputbox("Введите ваш возраст") if years = 1 then msgbox("Мне 1 год") end if if years = 2 then msgbox("Мне 2 годa") end if if years = 3 then msgbox("Мне 3 годa") end if if years = 4 then msgbox("Мне 4 годa") end if if (years >= 5) and (years <= 19) then msgbox("Мне "+cstr(years)+" лет") end if
if years >= 20 then dim s s = "Мне "+cstr(years) if (years mod 10 = 1) then s = s + " год" end if if (years mod 10 >= 2) and (years mod 10 <= 4) then s = s + " годa" end if if (years mod 10 >= 5) and (years mod 10 <= 9) then s = s + " лет" end if if (years mod 10 = 0) then s = s + " лет" end if msgbox(s) end if
dim years years = inputbox("Введите ваш возраст") if years = 1 then msgbox("Мне 1 год") end if if years = 2 then msgbox("Мне 2 годa") end if if years = 3 then msgbox("Мне 3 годa") end if if years = 4 then msgbox("Мне 4 годa") end if if (years >= 5) and (years <= 19) then msgbox("Мне "+cstr(years)+" лет") end if
if years >= 20 then dim s s = "Мне "+cstr(years) if (years mod 10 = 1) then s = s + " год" end if if (years mod 10 >= 2) and (years mod 10 <= 4) then s = s + " годa" end if if (years mod 10 >= 5) and (years mod 10 <= 9) then s = s + " лет" end if if (years mod 10 = 0) then s = s + " лет" end if msgbox(s) end if
это бинарной сортировки
сначала делим 1000 на 2
задаем вопрос больше или меньше
потом если больше то отрезок будет от 500 до 1000
(1000-500)/2+500=750 -новый вопрос потом еще вопрос
короше так:
A-начала отрезка(сначала A=1)
B-конец отрезка(B=1000)
найдем середину R=(B-A)/2+A-(возмем целое)
потом если больше то A=R иначе B=R
потом так продолжаем до тех пор пока A небудет равнятся B