题目描述:

用迭代法求 平方根

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

输入格式

X



输出格式

X的平方根



样例输入

4


样例输出

2.000


***迭代法迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。

***区分迭代和递归,迭代法使用for和while循环,而递归是函数的递归,即函数里面套用函数,在某个条件下跳出函数


代码实现

#include #include //double func(double x, int a)
//{
//	double func(double x, int a);
//	double x1 = 0, temp = x;
//	int b = a;
//	if(fabs(temp-x1) >= 1e-5)
//	{
//		x1 = x;
//		temp = (x1 + b/x1)/2;
//		temp = func(temp,b);
//	}
//	return temp;
//}


int main()
{
	double x = 1.0, x1 = 0, a;//x是后一项x[n+1],x1是前一项x[n] 
	scanf("%lf", &a);//%d,%lf不能出错,这里a用int就用%d,a用double就用%lf 
	//前后两次求出的绝对值少于0.00001,0.00001用1e-5表示,绝对值用fabs 
	while(fabs(x-x1) > 1e-5)//小于0.00001就跳出循环 
	{
		x1 = x;
		x = (x1 + a/x1)/2;
	}
	//要搞清楚的是前后两次相减实际上都是x[n+1]相减,
	//但前一项的x[n+1]是后一项的x[n] 
//	x = func(x,a);
//	printf("%.3lf", func(x,a));
	printf("%.3lf", x);
	return 0;
}


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论