C 語言自定義平方根函式

2021-05-23 22:12:30 字數 678 閱讀 9067

求乙個數的平方根。

要求:不使用系統函式,求出乙個數的平方根(要求誤差值在0.0001)。按照如下的演算法。

如果乙個數為x 假設它的平方根為y, 如果 y*y的結果和x相差大於0.0001,就繼續假設下乙個值。應該如何猜下乙個值呢?

用x除y的商結果z, 再求(y+z)的平均值作為新的平方根的猜測值。

示例如下,假設要求3的平方根,假設為1.5

x猜測平方根y

結果z下乙個猜測值

1.53/1.5=2

(1.5+2)=1.75

1.75

3/1.75=1.7143

這時1.7143*1.7143=2.9388和3的差距還有

3-2.9388=0.0612所以繼續這個猜測過程,直到差距在0.0001這個可接受的範圍為止。

這個演算法被稱為牛頓迭代法。

class mysqrt

return s;

} ///

/// 判斷是否符合要求的誤差範圍

///

///

平方根

///

目標數

///

假為合適的值,真為不合適

public static bool notfit(double num,double n)

return false; } }

求平方根函式

加一點注釋 unsigned short work unsigned int n 要進行開平方運算的物件 unsigned int ans 0 開平方運算的結果 unsigned int square 0 記錄中間產生的平方值 unsigned short r 0 程式最終的返回結果 for int...

牛頓拉弗森算平方根 c語言 計算平方根和牛頓迭代法

大一剛入學,有門課叫計算機引論,其實就是學點c語言,而不是介紹計算機。學校發的教材,艱澀難懂,後來我們班換成了譚浩強那本書。我記得書中介紹了牛頓迭代法求高次方程的根,但是我對這個知識點沒有興趣,也覺得不好理解,只是大概翻了翻。在讀研究生的時候,我去過北京師範大學東門的書店,看了看一本中學教材,介紹了...

自己寫平方根squareroot函式

今日做一面試題目,寫一平方根squareroot函式,函式介面為 unsigned int squareroot unsigned int input 不考慮float情況 經過思考,用位移的方法,乙個整數32bits,那麼平方根最多16bits,那麼對於這16個bits,從最大權重的bit開始,看...