这是我的问题:
- 我需要在 Scheme 中创建一个程序来玩“我在想什么数字”游戏
- 参数为下限和上限
- 每次进行猜测时,都会将其与答案进行比较
- 如果猜得少,它应该说高一些
- 如果更多,应该说 -go lower
- 如果相等,打印出“Winnner!”。
这是我当前的代码:
(define (game low high)
(let ((guess (average low high)))
(cond ((islow? guess) (game (+ guess 1) high))
((ishigh? guess) (game low (- guess 1)))
(else '(Winner!)))))
如何实现 islow
和 ishigh
?
最佳答案
你可以做类似二分查找的事情。
while (true){
response = guess(number);
if(response == true) return "Found it!";
if(response == 'higher'){
number = number+maximum/2;
}
else if(response == 'lower'){
number = number+minimum/2;
}
}
关于lisp - "What number am I thinking of"Scheme中的猜谜游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8001801/