前言:
欲求a的平方根,首先猜测一个值x1=a/2(也可以是随便什么其他值)作为其平方根,然后根据下面的迭代公式算出x2,再将x2代入公式右边算出x3……直到连续两 次算出的xn和xn+1的差的绝对值小于某个值ε,即认为找到了足够精确的平方根。这 个ε值取得越小,计算出来的平方根就越精确。
迭代公式: xn+1 = (xn + a / xn ) / 2
程序实现:
#include <iostream> using namespace std; double EPS = 0.001; //用以控制计算精度 int main(){ double a; cin >> a ; //输入a,要求a的平方根 if( a >= 0) { double x = a/2, lastX = x + 1 + EPS;//确保能够进行至少一次迭代 while( x - lastX > EPS || lastX - x > EPS){ //只要精度未达要求, //就继续迭代 lastX = x; x = (x + a/x)/2; } cout << x; } else cout << "It can't be nagitive."; return 0; }