【华为机试】求解立方根(牛顿迭代法)

先分享马同学的科普,深入浅出,很容易理解。https://www.matongxue.com/madocs/205.html

关于牛顿迭代法,除开理论部分,核心公式其实就一个。

题目描述

•计算一个数字的立方根,不使用库函数

详细描述:

•接口说明

原型:

public static double getCubeRoot(double input)

输入:double 待求解参数

返回值:double  输入参数的立方根,保留一位小数

 

输入描述:

 

待求解参数 double类型

输出描述:

 

输入参数的立方根 也是double类型

示例1

输入

复制

216

输出

复制

6.0
#include
double getCube(double input);
int main(void)
{
    double input;
    double cube;
    scanf("%lf\n", &input);
    cube = getCube(input);
    printf("%.1lf\n", cube);
    return 0;
}

double getCube(double input)
{
    double x = 1;
    double x1 = x - (x * x * x - input)/(3 * x *x);
    while(x - x1 < -0.000000001 || x - x1 > 0.000000001)
    {
        x = x1;
        x1 =  x - (x * x * x - input)/(3 * x *x);
    }
    
    return x1;
}

 

你可能感兴趣的:(其他)