最近,我在某人的编程课上遇到了一个问题。它要求他们仅使用整数来计算平方根;他们用一个整数来表示小数点之前的部分,用另一个整数来表示小数点之后的部分。问题说不允许使用浮点数。
然而,经过一段时间的思考,我似乎无法想出一种不使用浮点的方法。我用谷歌搜索了很多次,但似乎找不到答案。
我开玩笑地建议我的朋友实现一个 FPU 来做到这一点,但他并没有那么好笑。
有人对如何解决这个问题有任何想法吗?
假设您的原始号码是x
.
查找小数点之前的部分很容易 - 只需找到最大数字,即小于或等于原始数字的平方。
原数乘以 100,sqrt 的整数部分乘以 10。加 1,直到小于或等于100x
. Do it n
次并除以10^n
最后得到最终答案被截断为n
小数位。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)