integer - 仅使用整数求平方根

标签 integer square-root

最近,我在某人的编程课上遇到了一个问题。它要求他们仅使用整数来计算平方根;他们用一个整数来表示小数点之前的部分,用另一个整数来表示小数点之后的部分。问题说不允许使用 float 。

但是,经过一段时间的思考,我似乎无法想出一种不使用浮点的方法。我用 Google 搜索了很多次,但似乎找不到答案。

我开玩笑地建议我的 friend 实现一个 FPU 来做到这一点,但他并没有那么好笑。

有人知道如何解决这个问题吗?

最佳答案

假设您的原始号码是 x

  1. 查找小数点之前的部分很容易 - 只需找到最大数字,即小于或等于原始数字的平方即可。

  2. 将原始数字乘以 100,并将 sqrt 的整数部分乘以 10。加 1,直到小于或等于 100x。执行 n 次并在最后除以 10^n 以获得截断至 n 位小数的最终答案。

关于integer - 仅使用整数求平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16532697/

相关文章:

php - 通过 PHP 在 MySQL 中查询整数

java - 实时查看计算结果

Python 将元组转换为整数

php - 字符串到整数数组php

c++ - leveldb 中的整数值

loops - Clojure:当当前变量的值与我的输入值匹配时,我如何让 for 循环停止?

c - 平方根作为运行时的输入

java - 使用递归求平方根(牛顿算法)

swift - 在 Swift 中找到平方根的最简单方法?

sorting - 需要异常排序算法