面試的時候,偶然被問到,開根號的實現,雖然給面試官講解了思路,但是沒有實際實現過,今天閑來無事,就把自己的思路寫一下,做個筆記。 如果某個數字正好可以開根號為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:二分法, ...