求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n])要求前后两次求出的得差的绝对值少于0.00001。

求平方根的迭代公式为:X[n+1]=1/2(X[n]+a/X[n])要求前后两次求出的得差的绝对值少于0.00001。输出保留3位小数... 求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n])要求前后两次求出的得差的绝对值少于0.00001。
输出保留3位小数
展开
 我来答
嘲笑自己rain
2013-11-24 · 超过10用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:21.4万
展开全部

//////////因为这个格式对任意的初始值都是收敛的,所以我把初始值选择为1;

//////下面是代码,在codeblocks上编译通过,并且结果正确。

#include <stdio.h>

double cal_sqrt(double a)
{
    double x=1;
    double y=1.0/2*(x+a/x);
    while(fabs(y-x)>1e-5)
    {
        x=y;
        y=1.0/2*(x+a/x);
    }
    return y;
}

int main()
{
    double a=4;
    double b=cal_sqrt(a);
    printf("%.3lf",b);
    return 0;
}
匿名用户
2016-09-19
展开全部
#include <stdio.h>
#include<math.h> 
double cal_sqrt(double a)
{
    double x=1;
    double y=1.0/2*(x+a/x);
    while(fabs(y-x)>1e-5)
    {
        x=y;
        y=1.0/2*(x+a/x);
    }
    return y;
}
 
int main()
{
    double a;
    scanf("%lf",&a);
    double b=cal_sqrt(a);
    printf("%.3lf",b);
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
葫芦丝路由此次
2020-05-16
知道答主
回答量:1
采纳率:0%
帮助的人:601
展开全部
#include<iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
float x;
float a,b;
cin>>x;
b=2;
a=1;
while(fabs(b-a)>0.00001)
{
a=b;
b=(a+x/a)/2;
}
cout<<fixed<<setprecision(3)<<b;
system("pause");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
简若03
2016-04-10
知道答主
回答量:1
采纳率:0%
帮助的人:1118
展开全部
为什么是fabs(y-x)>1e-5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式