我需要編寫一個函數來爲課程分配計算平方數。它可以計算像16和25個數字的平方根,但不準確地計算出的9我的平方根函數並不能爲某些數字提供準確的結果
平方根下面是代碼
double mysqrt (double x)
{
double low, high, mid;
這個if語句決定創建了一個範圍,以確定的平方根。
if (x >= 0) {
low = 0;
high = x;
}
else {
low = x;
high = 1;
}
該語句計算的中間值
mid = (high + low)/2.0;
while循環用於確定平方根。
while (abs(mid*mid - x) > 0.0001)
{
if (mid * mid > x)
high = mid;
else
low = mid;
mid = (high/2.0) + (low/2.0);
}
return mid;
}
任何不使用[std :: sqrt](http://en.cppreference.com/w/cpp/numeric/math/sqrt)函數的原因? – 2016-09-16 23:13:41
老師可能會對使用std :: sqrt執行二分搜索的任務感到fr fr不安。 –
'不準確地計算9的平方根'定義*精確*「。這是浮點數,所以絕對不會有100%的準確性。此外,你的循環以'0.0001'打破,這比雙打的精度還差。 – dxiv