Skip to content

790. 数的三次方根

题目

给定一个浮点数 n,求它的三次方根。

输入格式

共一行,包含一个浮点数 n

输出格式

共一行,包含一个浮点数,表示问题的解。

注意,结果保留 6 位小数。

数据范围

  • 10000n10000

输入样例

1000.00

输出样例

10.000000

解答

循环 100 次

C++ 代码

cpp
#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    double n;
    cin >> n;
    
    double l = -10000, r = 10000; // 不要用 -n,可能会出现 0.1^3 = 0.001

    for (int i = 0; i < 100; i++) {
        double mid = (l + r) / 2;
    
        if (mid * mid * mid >= n) {
            r = mid;
        }
        else {
            l = mid;
        }
    }
    
    printf("%.6lf\n", l);
    return 0;
}

区间长度小于定值

对于保留 6 位小数的,区间长度小于 108 即可。

C++ 代码

cpp
#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    double n;
    cin >> n;

    double l = -10000, r = 10000; // 不要用 -n,可能会出现 0.1^3 = 0.001
    
    while (r - l > 1e-8) {
        double mid = (l + r) / 2;
    
        if (mid * mid * mid >= n) {
            r = mid;
        }
        else {
            l = mid;
        }
    }
    
    printf("%.6lf\n", l);
    return 0;
}

Released under the MIT License.