首页 > 解决方案 > Google Kickstart 练习轮 2019 问题 1 中的错误答案(猜数)

问题描述

所以我仍在学习编码和使用 python 作为我的主要语言。问题是我们有两个数字。我们必须将 A 和 B 作为输入。A 为 0,B 在两个测试用例中给出,分别为 30 和 10^9。系统将在 A(不包括)和 B(包括)之间选择一个数字(比如 P)。我们必须编写一个程序来猜数字。如果我们的猜测值高于 P,系统将输出“TOO_BIG”,我们必须调整下一个猜测值。如果我们的猜测低于 P,那么我们将得到“TOO_SMALL”。如果它是正确的,那么我们将得到“正确”。我们有 N 次尝试猜测这个数字,N = 30。

这是我的代码:

import sys

def solve(lower,upper):
    
    guessed_right = False
    
    for _ in range(no_of_guesses):
        midpoint = (lower + upper)//2
        guess = midpoint
        print(guess)
        
        sys.stdout.flush()
        judge = input()
        
        if judge == "CORRECT":
            guessed_right = True
            break
            
        elif judge == "TOO_BIG":
            upper = midpoint - 1
            
        elif judge == "TOO_SMALL":
            lower = midpoint + 1
        
        elif judge == "WRONG_ANSWER":
            sys.exit()
        
    
    def run():
    T = int(input())
    for case in range(T):
        lower, upper = map(int(input().split()))
        no_of_guesses = int(input())
        solve(lower + 1, upper)

我得到了错误的答案,似乎找不到问题

标签: pythonnumbersbinary-search

解决方案


推荐阅读