二分法计算平方根

2021-01-20  本文已影响0人  壹顾倾城
/********************************
* 程序名称:二分法计算平方根 
* 开发时间:2021-01-19
*******************************/
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

void kaif(double x) {
    double jd = 1e-10,    //精度 
          low = 1, 
         high = x, 
         mid  = (low + high) / 2.0f;
    int count = 0;
    
    //cout << fabs(x - mid*mid);
    while(fabs(x - mid * mid) > jd) {
        if(x - mid * mid > jd) {
            low = mid;
        } else {
            high = mid;
        } 
        mid = (low + high) / 2; 
        count ++;
    }
    
    printf("%.10lf 近似平方根是 %.10lf\n", x, mid);
    printf("一共迭代 %d 次。\n", count);
}
//main() star
int main() {
    //code here
    kaif(2.0f);
    kaif(5.0f);
    return 0;
}

测试1:

2.0000000000 近似平方根是 1.4142135624
一共迭代 28 次。
5.0000000000 近似平方根是 2.2360679775
一共迭代 33 次。

--------------------------------
Process exited after 0.5106 seconds with return value 0
请按任意键继续. . .
上一篇 下一篇

猜你喜欢

热点阅读