题目描述:
给定一个正数n,求出它的算数平方根。比如25的算数平方根为5.要求不能用库函数。
分析:
正数n的算数平方根可以通过计算一系列近似值来获得,每个近似值都要比前一个更加接近准确值,直到找出满足精度要求的那个数的位置。具体而言,可以找出第一个近似值是1,接下来的近似值则可以通过公式来获得。
实现代码:
package lock;
public class T21 {
public float squareRoot(float n,float e)
{
float new_one=n;
float last_one=1; //第一个近似值为1
while(new_one-last_one>e) //直到满足精度条件为止
{
new_one=(new_one+last_one)/2; //求下一个近似值
last_one=n/new_one;
}
return new_one;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
T21 s=new T21();
int n=50;
float e=0.000001f;
System.out.println("50的算数平方根为:"+s.squareRoot(n,e));
n=4;
System.out.println("n+"的算数平方根为:"+s.squareRoot(n,e));
}
}