欢迎光临散文网 会员登陆 & 注册

巴比伦算法求平方根

2022-06-10 19:00 作者:爬虫learner  | 我要投稿


C语言程序设计第五章课后习题(谭浩强)


分析:

巴比伦算法介绍:

1.    假设要求a的平方根,先找到一个近似值x0,如a/2;

2.    被开方数a除以近似值x0;

3.    求第一步和第二步得到的值的平均数;

4.    令平均数为新的近似值,返回第二步,循环计算(根据精度要求,进行循环控制)

经过前面四个步骤,可以得到如上公式;

对公式的理解:可以把xn理解为x0,xn+1理解为x1,然后套用公式即可

程序=算法(解决问题的步骤)+数据结构(数据类型的选择)

程序如下:

//习题5.12平方根的迭代公式

#include<stdio.h>

#include<math.h>//需要使用绝对值函数fabs()

int main()

{

      float a,x0,x1;//根据算法和数据精度的要求,需要定义三个变量和将变量定义为float型。

      printf("请输入正数a的值:"); //用于提示用户输入一个被开方数;

      scanf("%f",&a);//没加取地址符,由于这个里没写,导致输出没有结果

      x0=a/2;//第一步,取得一个近似值

      x1=(x0+(a/x0))/2;//根据公式,算出第二步

      do//do循环,先执行循环体,后判断是否满足条件

      {

            x0=x1;

            x1=(x0+(a/x0))/2;

       } while(fabs(x1-x0)>=1e-5);//判断条件是否满足,满足结束循环,不满足继续循环;

      printf("%f的平方根为:%f",a,x1);

      return 0;

 }

 


巴比伦算法求平方根的评论 (共 条)

分享到微博请遵守国家法律