exp3_3.cpp

来自「高等教育出版社出版的C++程序设计同步实验范例 希望对用这本教材得同学有点帮助」· C++ 代码 · 共 21 行

CPP
21
字号
/*范例:用迭代法编程求a的平方根,求平方根的公式为x(n+1)=(x(n)+a/x(n))/2 ,
要求前后两次求出的x的差的绝对值小于10负7次方 。
[分析] 迭代法的特点是数列的前后项之间存在固定的关系(公式)。要求目标值,
须从一个近似值出发,利用迭代公式反复计算反复比较,直到目标值符合要求。
本题中,迭代公式为: x(n+1)=(x(n)+a/x(n))/2  ,我们取a/2为平方根的近似值,
利用迭代公式计算,直到|x(n+1)-x(n)|< 10负7次方 。在这里, 
x(n+1)-x(n)=(x(n)+a/x(n))/2-x(n)=-(x(n)-a/x(n))/2
fabs为求绝对值的函数。
*/
#include <iostream.h>
#include <math.h>
void main(){
  double x, a;
  cout <<"please input a value:\n";
  cin >>a;
  x = a/2;
  while(fabs((x-a/x)/2)>1e-7)
    x=(x+a/x)/2;
  cout <<"The square root of "<<a <<" is "<<x <<endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?