如何求出十位以上的数?
如何求出十位以上的数?比如9.32 = 0;17.2 = 10;21.3 = 20;115 = 110 ...等等 <p>Command: (* (fix (/ 115 10)) 10)<br/>110</p><p>Command: (* (fix (/ 21.3 10)) 10)<br/>20</p><p>Command: (* (fix (/ 17.2 10)) 10)<br/>10</p><p>Command: (* (fix (/ 9.32 10)) 10)<br/>0</p> 学习了~ <p>二楼的解释思路。先进行除10处理 然后再取整 乘10处理。同样也可以进行取5处理大于3取5 小于3取0</p><p>(defun c:qu5(x)</p><p>(setq y(/ x 5)</p><p> x(rem x 5)</p><p>)</p><p>(if (> 3 x)(setq y (+ 1 y)))</p><p>(setq y (fix y))</p><p>(setq x (* 5 y))</p><p>)</p><p>以后要求对某数x进行处理时只要(qu5 x)就行了。</p><p></p> 问题是:如果本身已经是整的可以不加?如 150 已经整数了但他还+5 4楼误导人,曲解2楼意思。先用对数函数log和取整函数fix求出要处理的数有多少位,再根据2楼的方法用十的几次幂处理。类似原理请参考我的LISP大挑战第一季
页:
[1]