//計(jì)算平方根
public?static?double?sqrt(double?c)?{
if?(c?<?0)?return?Double.NaN;
double?err?=?1e?-15;
double?t?=?c;
while?(Math.abs(t?-?c/t)?>err?*t?)
t?=?(c/t?+?t)?/2.0;
return?t;
????
}在這里面(1e -15),實(shí)在看不懂這個(gè)“l(fā)e”是一個(gè)什么變量。試了好幾個(gè)也不懂。還有while那段循環(huán)看不懂。望解答一下代碼
2 回答
已采納

精慕門9254224
TA貢獻(xiàn)167條經(jīng)驗(yàn) 獲得超46個(gè)贊
1e-15是指數(shù)形式表達(dá)浮點(diǎn)數(shù),代表10的-15次方是double類型的正數(shù)最小值,while 中math .abs 代表取絕對(duì)值,while 循環(huán)內(nèi)部的代碼就是開(kāi)方的算法,不過(guò)浮點(diǎn)數(shù)計(jì)算會(huì)有小數(shù)溢出,一般精度不夠,會(huì)丟失精度!

topband
TA貢獻(xiàn)14條經(jīng)驗(yàn) 獲得超12個(gè)贊
1e?-15;代表10的-15次方。
這個(gè)求平方根的算法為牛頓法。是常用的一種算法之一。
如果不專門學(xué)習(xí)算法的話,不需要去摳這些細(xì)節(jié)的。只需要知道,這是一個(gè)功能函數(shù),作用是求平方根。
另外,如果對(duì)算法感興趣,可以加入學(xué)校的acm社團(tuán),成為一個(gè)acmer,順便膜拜下樓教主。
添加回答
舉報(bào)
0/150
提交
取消