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="font-size:18px;color:#006600;">/*二分法实现*/
void mysqrt1(double num)
{
double low=0.0,high=0.0;
double result=0.0;
int co

本文介绍了C/C++中计算平方根的两种方法:累加逼近和二分法。累加逼近适用于小数值,但效率较低;二分法则具有更高精度和效率。代码示例展示了这两种方法的实现。
&spm=1001.2101.3001.5002&articleId=39273283&d=1&t=3&u=68ae096c212147d783470161218d55ca)
2666

被折叠的 条评论
为什么被折叠?



