7 条题解

  • 0
    @ 2025-5-6 15:54:19

    #include #include // 用于比较误差 using namespace std;

    // 计算x的三次方根的函数,使用牛顿迭代法 double cbrt(double x, double tolerance) { if (x == 0) { return 0; }

    double guess = x / 3; // 初始猜测值
    double next_guess;
    
    do {
        next_guess = (2 * guess + x / (guess * guess)) / 3; // 牛顿迭代公式
        if (abs(next_guess - guess) < tolerance) { // 如果误差小于容忍度,则停止迭代
            return next_guess;
        }
        guess = next_guess;
    } while (true);
    

    }

    int main() { double x; cout << "Enter a number to calculate its cube root: "; cin >> x;

    double tolerance = 1e-10; // 设置误差容忍度
    double result = cbrt(x, tolerance);
    
    if (result != -1) {
    
        cout << "The cube root of " << x << " is approximately " << result << endl;
        cout << "Standard library result: " << cbrt(x) << endl; // 使用标准库函数进行比较
    }
    
    return 0;
    

    }

    信息

    ID
    51
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    393
    已通过
    259
    上传者