給定一個浮點數
n
,求它的三次方根。
輸入格式
共一行,包含一個浮點數
n
。
輸出格式
共一行,包含一個浮點數,表示問題的解。
注意,結果保留 6 位小數。
資料範圍
−10000≤n≤10000
輸入樣例:
1000.00
輸出樣例:
10.000000
思路
在區間中找到一個接近的值
#include <iostream>
using namespace std;
int main() {
double x;
cin >> x;輸入浮點數
double l = -10000, r = 10000;//結果範圍的初始化
while (r - l > 1e-8) {
double mid = (l + r)/2;//每一次取中間值判斷邊界大小,縮小區間
if (mid * mid * mid >= x) r = mid;
else l = mid;
}
printf("%1f\n", l);//找到一個最接近的值
return 0;
}
參考
1.https://www.acwing.com/problem/content/792/