解题思路:

迭代算法的基本思想是:

 为求一个问题的解x,可由给定的一个初值x0,根据某一迭代公式得到一个新的值x1,这个新值x1比初值x0 更接近要求的值x;再以新值作为初值,即:x1→x0,重新按原来方法求x1,重复这一过程直到|x-x1|< ∞(某一个给定的精度)此时可以将x1作为题的解

1)确定迭代模型

   根据问题描述,分析出前一个(或几个)值与下一个值的迭代关系数学模型。

2)建立迭代关系式

  递推数学模型一般是带下标的字母,算法设计中要将其转化为“循环不变式”----迭代关系式,迭代关系式就是一个直接或间接地不断由旧值递推出新值的表达式,存储新值的变量称为迭代变量。

3)对迭代过程进行控制。

  确定在什么时候结束迭代过程。根据题意可得 :

  while(fabs(x1-x2) > 1e-5)

 迭代也是通过循环结构实现,只不过要重复的操作是不断的从一个变量的旧值出发去计算他的新值,基本格式描述如下:

  while(迭代终止条件)

{

    根据迭代表达式,由旧值推算出新值

    新值取代旧值,为下一次迭代做准备

}


参考代码:

int main()

{
   int a;
   double x1=1.0,x2=0;
   scanf("%d",&a);
   while (fabs(x1-x2)>1e-5)//绝对值小于0.00005
   {
       x2 = x1;//赋予x2初值,储存旧值
       x1 = (x2 + a / x2) / 2;
   }
   printf("%.3lf",x1);
   return 0;
}
点赞(0)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

cchen 2年前 回复TA
注释不对吧。明明是绝对值大于0.00005,为什么注释写小于?
小菜鸟 2年前 回复TA
@rlei 注意看 x1是等于  1.0  。x1 = 0 的话循环条件就不成立了.
rlei 2年前 回复TA
x1为啥等于0?