8. Угадай число
Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Боб и его старший брат Альберт часто играют в игру "Угадай число". Сначала Боб загадывает число `K` в диапазоне от 1 до `N`. Потом Альберт называет числа, а Боб говорит, является названное число больше или меньше загаданного или Альберт назвал правильное число. Альберт для угадывания всегда использует следующую стратегию.
1 шаг. Альберт задает `A=1` и `B=N`
2 шаг. Альберт вычисляет `M` – целую часть среднего арифметического чисел `A` и `B`
3 шаг. Альберт называет число `M`
4 шаг. Если Боб говорит "Меньше", то Альберт полагает `A=M+1` и переходит к шагу 2
5 шаг. Если Боб говорит "Больше", то Альберт полагает `B=M-1` и переходит к шагу 2
6 шаг. Если Боб говорит "Угадал", то игра заканчивается
Например, пусть `N=9`, а задуманное Бобом число `K` равно 6. Сначала `A=1`, `B=9`.
Альберт называет число 5 и получает ответ "Меньше". Теперь `A=6`, `B=9`.
Следующее число-попытка 7. Боб отвечает "Больше". Теперь `A=6`, `B=6`. Альберт называет 6
и получает ответ "Угадал".
Напишите программу, которая определяет, сколько чисел придется назвать Альберту,
прежде чем он получит ответ "Угадал" от Боба.
В первой строке входного файла содержатся два целых числа `N` (`1\ ≤\ N\ ≤\ 1000`) и `K` (`1\ ≤\ K\ ≤\ N`), разделенных пробелом.
В выходной файл вывести одно целое число – количество названных Альбертом чисел до получения ответа Боба "Угадал".