求C++大神给编写一个小程序

2025-04-06 00:31:01
推荐回答(1个)
回答1:

思路:求x^0.5 = y,相当于找 y^2 = x

用二分枚举y,这样直到找到合适的解

#include 
#include 

const double ep = 0.0000001; //精度
const double num = 98765432123456789.0; //目标数

int main() {
    double start = 0;
    double end = 10000000000.0;
    while ( fabs(end-start) > ep ) {
        double mid = (start+end)/2;
        if (mid*mid < num) {
            start = mid;
        }
        else {
            end = mid;
        }
    }
    printf("%.7f\n",start);
    return 0;
}

 输出:

314269680.5666381