Advertisement
nq1s788

Untitled

Oct 2nd, 2024
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.27 KB | None | 0 0
  1. В этой задаче загадано число от 1 до 1000000, нужно написать программу, которая его угадывает. Будем идти бинарным поиском -- сначала спросим среднее число (500000), если загаданное больше, то будем спрашивать среднее между 500000 и 1000000, если меньше, то среднее между 1 и 500000. И так далее, пока "диапазон угадывания" не сведется к длине 1.
  2.  
  3. Пример кода на python:
  4.  
  5. l = 0
  6. r = 1000000
  7. while r - l > 1:
  8.     m = (r + l) // 2
  9.     print(m, flush=True) #добавляем flush, для того чтобы корректно работало взаимодействие с проверяющей системой
  10.     answ = input() #вердикт проверяющей системы, "<" или ">="
  11.     if answ == "<":
  12.         r = m #ответ меньше или равен чем наше предположение m, значит дальше будем искать левее него
  13.     else:
  14.         l = m
  15. print('!', r, flush=True) #выводим r, так как именно в r мы складывали больше либо равные
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement