//計算平方根
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),實在看不懂這個“le”是一個什么變量。試了好幾個也不懂。還有while那段循環看不懂。望解答一下代碼
2 回答
已采納

精慕門9254224
TA貢獻167條經驗 獲得超46個贊
1e-15是指數形式表達浮點數,代表10的-15次方是double類型的正數最小值,while 中math .abs 代表取絕對值,while 循環內部的代碼就是開方的算法,不過浮點數計算會有小數溢出,一般精度不夠,會丟失精度!

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