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

用迭代法求(98765432123456789)^0.5的近似解,要求精度要求达到10^-6... 用迭代法求(98765432123456789)^0.5的近似解,要求精度要求达到10^-6 展开
 我来答
bnulzm
2014-10-08 · TA获得超过264个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:196万
展开全部

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

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

#include <stdio.h>
#include <math.h>

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式