二分法计算平方根

/********************************
* 程序名称:二分法计算平方根 
* 开发时间: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
请按任意键继续. . .
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容