迭代法求根 C语言xdoj185

问题描述:

用迭代法求x=\sqrt{a},求平方根的迭代公式为x_{n+1}=\frac{1}{2}(x_n+\frac{a}{x_n})

要求前后两次求出的x的差的绝对值小于10^{-5}

输入说明:

输入浮点数a。

输出说明:

输出一个浮点数x,小数点后保留5位小数。

输入样例:

3

输出样例:

1.73205

#include 
#include 

//迭代法求根
int main() {
    float a;
    scanf("%f", &a);
    float x = sqrt(a);
    float x1 = 0.5 * (x + a / x);
    while (fabsf(x - x1) >= 0.00001) {
        x = x1;
        x1 = 0.5 * (x + a / x);
    }
    printf("%.5f\n", x);
    return 0;
}

迭代法求根 C语言xdoj185_第1张图片

注:头文件math.h下,sqrt()求平方根,fabsf()对 float 类型取绝对值,

其他的:C语言中 各数据类型取绝对值需要的不同函数

int->abs()

long ->labs()

float ->fabsf()

double->fabs()

long double->fabsl()

你可能感兴趣的:(C语言,c语言)