解题思路:说是迭代法求平方根,但没必要写一个函数进行迭代(因为迭代公式中a的值始终不变,我太菜了也不知道这种情况怎么写迭代函数),直接用while循环进行求解就好
注意事项:需要设置一个中间变量m,用来存储第一次迭代公式中的X[n](这一项在第一次迭代时值与a相等),所以X[1] =m = a, X[2 ]= n = (a + 1) / 2,X[3] = (X[2] + a/X[2]) / 2 ......
参考代码:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double a, m, n;
cin >> a;
m = a;
n = (m + a / m) / 2;
while (abs(m - n) >= 0.00001) {
m = n;
n = (n + a / n) / 2;
}
cout << fixed << setprecision(3) << n;
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复