用c语言求平方根

用c语言求平方根,第1张

# include <stdio.h> 

int main () 

{double a,x

 int n

 scanf("%lf%d",&a,&n)

 for(x=a/2n--)x=(x+a/x)/2 

 printf ("%lf",x)

 return 0

}

平方直接两个数相乘即可。

平方根可以通过这个数本身和0之间进行折半查找的方法,对数据进行计算。

当两数相乘大于这个数时,重置最大值;小于这个数时,重置最小值。由于存在除不尽的数,可以加上一个精度进行判断。

#include<stdio.h>

#include<math.h>

double squareFun(double x) // 平方

{

    return x*x

}

double sqrtFun(double x, int precision) // 开方

{

    double a = 0, b = x, mid = x/2, val = pow(10, -precision)

    if (x < 0)

        return -1

    while (true)  // 循环折半查找

    {

        if (fabs(mid*mid-x) <= val) // 达到进度则退出

            break

        if (mid*mid > x)  

            b = mid  // 重置最大值

        else

            a = mid  // 重置最小值

        mid = (a+b)/2

    }

    return mid

}

int main()

{

    double d = sqrtFun(2, 15)

    printf("%.15lf\n", d)

    printf("%.15lf\n", squareFun(d))

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/7763441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存