790. 數的三次方根
阿新 • • 發佈:2021-09-06
一、理解與感悟
浮點數二分還是很簡單的,最開始使勁設定最大和最小,精度一般設為\(1e-8\),然後根據條件寫\(check()\),發現符合就向左或向右逼近,直到結果的差,精度在可以接受的範圍內,完事。
二、C++程式碼
#include <bits/stdc++.h> using namespace std; const double eps = 1e-8; // eps 表示精度,取決於題目對精度的要求,6位小數,就是1e-8,5位就是1e-7 //三次方根:浮點數的二分,說白了就是個試,找到了算,但不是傻找,而是一半一半找。 int main() { double x; cin >> x; double l = -10000; //這個邊界有意思,注意左右邊界 double r = 10000; while (r - l > eps) { //浮點數差逼近了一個極小值,表示找到了相似值 double mid = (l + r) / 2; if (mid * mid * mid >= x) r = mid; //計算三次方根 else l = mid; } printf("%.6lf\n", l); //預設保留6位小數 return 0; }