sqart函数是c/c++数学计算的一个常用函数,sqart开方的主要思路是利用逼近的方法进行实现,精度最低,计算效率最低的方式是直接累加逼近;精度较高而且使用范围较广的方法是牛顿迭代法;精度最高,而且具有最大效率的方法则是二分法。
首先介绍的是直接使用累加进行逼近,这里需要设置一个阈值,我设置的阈值为0.001,对于较小的被开方数,累加进行逼近是可以接受的,但是对于较大的被开方数,这种方法不具任何意义。累加逼近的代码如下:
#define limits 0.001
void mysqrt(double num)
{
double i=0.0;
while((num-i*i>limits))
{
i+=0.001;
}
printf("%f",i);
printf("\n");
}
对于二分法计算平方根,需要先确定被开方数与1的大小关系,被开方数大于1,开方的值小于被开方数;被开方数小于1,开方的结果大于被开方数;如下是二分法计算开方的代码:
<span style=