面试的时候,偶然被问到,开根号的实现,虽然给面试官讲解了思路,但是没有实际实现过,今天闲来无事,就把自己的思路写一下,做个笔记。 如果某个数字正好可以开根号为2个整数,例如1,4,9等,那就很简单了。 如果某个数字不可以正好开根号为2个整数,而且要保留几位精度,例如:2,3,5等,我们该怎么办 ...
面试的时候,偶然被问到,开根号的实现,虽然给面试官讲解了思路,但是没有实际实现过,今天闲来无事,就把自己的思路写一下,做个笔记。 如果某个数字正好可以开根号为2个整数,例如1,4,9等,那就很简单了。 如果某个数字不可以正好开根号为2个整数,而且要保留几位精度,例如:2,3,5等,我们该怎么办 ...
...
使用Java自己实现开根号运算,网上也有不少代码,多数都使用String或者数组。这里写一段只使用double基础数据类型实现的方法。 参数中n是整数,p是精度。这种程序一般不能支持特别高的精度(比如几十位),五六位就不错了。 代码原理简单,这里就不说了。先看一下输出: 输出 ...
public static double sqrt(double a) { double x1= 0.0; double x2 =a/2; while(x1!=x2) { x1=x2; ...
Took 0.152364 seconds Took 0.061580 seconds Took 1.016529 seconds Took 0.215403 seconds ...
今天看到一个问题:计算机如何实现开根号? 如何求一个数字的算术平方根(又叫开根号,或者开方)? 大家普遍都是用计算器直接计算的,对于程序员来说,就是调用sqrt()方法。但是其内部又是怎么实现的呢?下面作了下总结。 方法一:迭代法 学过计算方法的应该 ...
二分法开根号,通过二分法在[0,n]之间寻找合适的数(n>1时),而n<1时,需要将上限设为1,即使用二分法在[0,1]之间寻找合适的数,最终达到一定精度跳出循环,但迭代很慢。 牛顿法可以快速迭代(牛顿法介绍) ...
一.问题描述:给定一个数,如何求它的平方根(不能使用内置函数,如sqrt()函数)。 二.题解: 这属于比较经典的一道题目,通常有两种方法:二分法和牛顿法,下面是详细描述。 方法1:二分法, ...