用迭代法求。求平方根的选代公式为
要求前后两次求出的x的差的绝对值小于10^-5。
#include <stdio.h> //导入"math.h"头文件 #include "math.h" int main() { //pow()函数用来求x的y次方的值 //sqrt()函数求出原数值的开根号后的结果 float x1,x2,a; float s = 0; printf("请输入一个数字a:"); scanf("%f",&a); x1 = sqrt(a); x2 = (x1+a/x1)/2; while(fabs(x1-x2) >= 1e-5){ x1 = x2; x2 = (x1+a/x1)/2; } printf("此时的a是%5.2f,x2是%5.2f",a,x2); return 0; }
def square_root(n:int)->float: """ f(x) = x^2 - n = 0,求该方程的根 """ x0 = 1 for i in range(100): x1 = x0 - (x0**2 - n)/(2*x0) if x1 - x0 < 1e-20 and x1-x0> -1e-20: print("total iterations: ", i+1) break x0 = x1 return x1