21xrx.com
2024-11-05 20:43:36 Tuesday
登录
文章检索 我的文章 写文章
C++中开平方根的方法
2023-07-04 11:43:33 深夜i     --     --
C++ 开平方根 方法

在C++中求一个数的平方根并不是一件难事,你可以使用以下两种方法:

1.使用sqrt函数

sqrt函数是C++标准库中的一个函数,它的作用是求一个数的平方根。使用sqrt函数非常简单,只需要将要求平方根的数作为参数传递给sqrt函数,就能得到这个数的平方根。

示例代码如下:


#include <cmath>

#include <iostream>

using namespace std;

int main()

{

  double num = 64.0; // 需要求平方根的数

  double result = sqrt(num); // 调用sqrt函数

  cout << "sqrt(" << num << ") = " << result << endl;

  return 0;

}

2.使用牛顿迭代法

牛顿迭代法是一种常用的数值计算方法,可以用于求解方程的根,包括平方根。其基本思想是迭代逼近目标根,通过不断迭代,最终得到目标根的近似值。

关于牛顿迭代法求平方根的具体步骤如下:

- 取任意正实数x0作为初始近似值;

- 根据牛顿迭代公式迭代求解,直到满足误差要求。

牛顿迭代公式:

xn+1 = (xn + a/xn)/2

其中,xn是上一轮迭代得到的近似值,a是要求平方根的数。

示例代码如下:


#include <iostream>

#include <cmath>

using namespace std;

double sqrt(double a);

int main()

{

  double a = 13.0;

  double res = sqrt(a);

  cout << "sqrt(" << a << ") = " << res << endl;

}

double sqrt(double a)

{

  double x0 = a; // 初始近似值

  double last = x0; // 上一轮迭代的结果

  double res; // 迭代结果

  int i = 0; // 记录迭代次数

  do {

    res = (last + a / last) / 2;

    ++i;

    last = res;

  } while (fabs(last * last - a) > 1e-15); // 控制误差精度

  cout << "迭代次数:" << i << endl;

  return res;

}

注意:

使用牛顿迭代法求平方根的代码量比调用sqrt函数要多一些,但是这种方法可以灵活地控制误差精度。在实际应用中,可以根据需要选择合适的方法来求解平方根。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复