No.246 質問と回答 on CommonLisp

;https://yukicoder.me/problems/no/246 (let ( (numMin 1) […]

;https://yukicoder.me/problems/no/246 (let ( (numMin 1) […]

  • タグ:
  • タグはありません
;https://yukicoder.me/problems/no/246
(let (
(numMin 1)
(numMax 1000000001))
(loop
(let ((chkNum (floor(/(+ numMin numMax) 2))))
(format t "? ~d~%" chkNum)
(finish-output)
(if (string=(read-line) "1") (setf numMin chkNum) (setf numMax chkNum))
(if (= numMin (1- numMax))(progn
(format t "! ~d~%" numMin)
(finish-output)
(return))))))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX