本文主要是介绍每日一题——第七十二题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用迭代法求a的算术平方根。公式为:Xn = 0.5 * (Xn - 1 + a / Xn - 1 )。确定初始值为x0,取a / 2 为x0的初始值,迭代结束条件为|x1 - x0| <= 10^(-5)。
#include <stdio.h>
#include <math.h> // 用于fabs函数计算绝对值 double sqrt_iterative(double a) {if (a < 0) {printf("负数没有平方根\n");return -1.0; // 或者可以选择其他方式处理错误情况 }double x0 = a / 2.0; // 初始值 double x1 = 0.0;// 当新旧值之差的绝对值大于10^-5时继续迭代 while (fabs(x1 - x0) > 1e-5) {x1 = 0.5 * (x0 + a / x0); // 使用迭代公式 x0 = x1; // 更新x0为x1的值,为下一次迭代做准备 }return x1; // 返回最终迭代结果
}int main() {double a;printf("请输入一个非负数: \n");scanf_s("%lf", &a);double result = sqrt_iterative(a);if (result != -1.0) {printf("%.2f 的算术平方根大约为: %.5f\n", a, result);}return 0;
}
这篇关于每日一题——第七十二题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!