【基础算法】开平方算法 & C++实现

简介: 在数学中,因为很多数的开平方都是无理数,所以我们需要借助数值计算的方式来进行近似值的求解。

●开平方


       在数学中,因为很多数的开平方都是无理数,所以我们需要借助数值计算的方式来进行近似值的求解。在数学中可以使用如下的迭代公式来求解a开平方的近似值:

e305cb339171adc344b66911d6bb5deb_34e47446542947ef994ac01a583be0e5.png


迭代法求解开平方算法的操作步骤如下:


       1.选定一个迭代初值x0,将其带入上面的迭代公式中求解出x1


       2.计算x1-x0的绝对值,如果小于指定精度e,则退出迭代过程,否则继续迭代运算


       3.将x(n)带入上面的迭代公式,求解出x(n+1)。继续判断x(n+1)-x(n)的绝对值,如果小于指定精度e,则退出迭代过程,否则继续迭代运算

#include<iostream>
#include<cmath>
using namespace std;
class sqrtnum {
public:
  void sqrt()
  {
  double t=0;
  result = x;
  while (abs(result-t)>e)
  {
    t = result;
    result = 0.5 * (t + x / t);   
  }
  }
  void showresult()
  {
  cout << result << endl;
  }
  double x;
  double e;
  double result;
};
void text()
{
  sqrtnum sn;
  cout << "输入开平方数:";
  cin >> sn.x;
  cout << "输入精度数:";
  cin >> sn.e;
  sn.sqrt();
  sn.showresult();
}
int main()
{
  text();
}

c510c848721170fda405996ebefdaf7b_c390ac2db86c4c098048f5878f368883.png

目录
相关文章
|
2月前
|
存储 算法 C++
高精度算法(加、减、乘、除,使用c++实现)
高精度算法(加、减、乘、除,使用c++实现)
570 0
高精度算法(加、减、乘、除,使用c++实现)
|
2月前
|
算法 数据处理 C++
c++ STL划分算法;partition()、partition_copy()、stable_partition()、partition_point()详解
这些算法是C++ STL中处理和组织数据的强大工具,能够高效地实现复杂的数据处理逻辑。理解它们的差异和应用场景,将有助于编写更加高效和清晰的C++代码。
29 0
|
2月前
|
存储 算法 决策智能
【算法】博弈论(C/C++)
【算法】博弈论(C/C++)
|
2月前
|
存储 算法 C++
【算法】哈希映射(C/C++)
【算法】哈希映射(C/C++)
|
2月前
|
机器学习/深度学习 人工智能 算法
【算法】最长公共子序列(C/C++)
【算法】最长公共子序列(C/C++)
|
2月前
|
人工智能 算法 BI
一篇带你速通差分算法(C/C++)
一篇带你速通差分算法(C/C++)
|
2月前
|
人工智能 算法 C++
一篇带你速通前缀和算法(C/C++)
一篇带你速通前缀和算法(C/C++)
|
2月前
|
存储 算法 C++
弗洛伊德(Floyd)算法(C/C++)
弗洛伊德(Floyd)算法(C/C++)
|
2月前
|
存储 算法 程序员
迪杰斯特拉(Dijkstra)算法(C/C++)
迪杰斯特拉(Dijkstra)算法(C/C++)
|
2月前
|
算法 C++
【算法解题思想】动态规划+深度优先搜索(C/C++)
【算法解题思想】动态规划+深度优先搜索(C/C++)