擅长:python、mysql、java
<p>让我们切换到高级伪代码,并给变量起更好的名称,因为我认为您正被语法细节所困扰,而您的头脑中还没有您的算法的大局。在</p>
<pre><code>def recursive_guess(lower_bound, upper_bound):
guess = random guess in range [lower_bound, upper_bound]
print guess
request user response
response = <get user response>
if guess was too high:
upper_bound = guess - 1
elif guess was too low:
lower_bound = guess + 1
else:
return guess
# assuming we reached this point without returning,
# we need to do a recursive call because guess was wrong
return recursive_guess(lower_bound, upper_bound)
</code></pre>
<p>在给定的代码中,您似乎从递归方法开始,但当您再次将猜测更新为一个新的随机值时,您就(潜意识地)切换到迭代方法。如果您在函数的末尾执行与开始时相同的操作,这可能会提示您可能已经递归了。在</p>
<p>把递归看作是让你的任务稍微小一点,那么你就已经完成了。在这种情况下,如果我们可以减小窗口大小(<code>upper_bound - lower_bound</code>),那么我们就完成了我们的工作。递归将从那里开始处理它,只要我们有一个基本情况。在这个场景中,基本情况是正确的猜测,在这种情况下,我们立即返回。在</p>