立方根の計算
Posted feedbacks - Common Lisp
範囲を半分ずつ切っていく方針で。
1 2 3 4 5 6 7 8 9 10 | (defun cuberoot (x)
(let ((lb 0) (ub 10))
(dotimes (i 50)
(let ((m (/ (+ lb ub) 2)))
(if (< (* m m m) x)
(setf lb m)
(setf ub m))))
(multiple-value-bind (q r)
(truncate lb)
(format t "~A.~A" q (floor r 1/1000000000000)))))
|


にしお
#3411()
Rating1/1=1.00
ただし、このお題の趣旨は実数区間での探索なので、 立方根関数があっても使ってはいけません。 指数関数と対数関数も禁止します。
Pythonで表現した入出力の例:
[ reply ]