3350 - 习题5-13 迭代法求平方根
时间限制 : 1 秒
内存限制 : 12 MB
输入一个非负实数a,用迭代法求平方根

求平方根的迭代公式为
要求前后两次求出的x的差的绝对值小于10<sup>-5</sup>
从键盘输入非负实数a和迭代初值x0,输出满足条件的x<sub>n+1</sub>
C数学库中有求绝对值的函数fabs.
题目输入
非负实数a和迭代初值x0(要求double类型)
题目输出
输入非负实数的平方根,保留6位小数,末尾换行。
输入/输出样例
输入格式
10 3
输出格式
3.162278
C语言解答
#include <stdio.h> #include <math.h> int main() { double a, x, y; scanf("%lf %lf", &a, &x); y = x + 1; while(fabs(x - y) >= 0.00001) { y = x; x = (y + a / y)/2.0; } printf("%.6lf\n", x); return 0; }
C++解答
#include<stdio.h> #include<math.h> int main() { float x0,x1,a; scanf("%f",&a); x1=a/2; do { x0=x1;x1=(x0+a/x0)/2; } while(fabs(x0-x1)>=0.00001); printf("%f\n",x1); }