-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path030.HiLow.py
More file actions
32 lines (23 loc) · 780 Bytes
/
030.HiLow.py
File metadata and controls
32 lines (23 loc) · 780 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
LOW = 1
HIGH = 1000
def guess_binary(answer, low, high):
guesses = 1
while True:
guess = low + (high - low) // 2
if guess < answer:
low = guess + 1
elif guess > answer:
high = guess - 1
elif guess == answer:
return guesses
guesses += 1
correct_count = 0
max_guesses = 0
for number in range(LOW, HIGH + 1):
number_of_guesses = guess_binary(number, LOW, HIGH)
print("{} guessed in {}".format(number, number_of_guesses))
if number_of_guesses > max_guesses:
max_guesses,correct_count = number_of_guesses,1
elif number_of_guesses == max_guesses:
correct_count += 1
print("I guessed within being told {} times. Max {} guesses".format(correct_count,max_guesses))