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))))))