請問要如何用java 找出一個數字的 square root?
不能以 Math.sqrt(); 喔!!
2005-11-13 17:09:30 · 3 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
// 求 http://mathworld.wolfram.com/SquareRoot.html
public class MyMath {
// 以牛頓疊代法(Newton's iteration) 求出傳入數值之平方根到
// 誤差小於等於傳入的err值
// 使用static function 不必產生物件
public static double sqrt(double a, double err) {
double root = 1; // K0 = 1;
while (Math.abs(a - root * root) > err){
// 如果誤差大於指定的誤差值則繼續疊代
root = (root + a / root) / 2;
}
return root;
}
// 以固定的err值呼叫牛頓疊代法 求出傳入數值之平方根
// 使用static function 不必產生物件
public static double sqrt(double a) {
return sqrt(a, 0.00000001);
}
public static void main(String []args) {
System.out.println(MyMath.sqrt(0.2));
System.out.println(MyMath.sqrt(2));
System.out.println(MyMath.sqrt(3));
System.out.println(MyMath.sqrt(4));
System.out.println(MyMath.sqrt(5));
System.out.println(MyMath.sqrt(6));
System.out.println(MyMath.sqrt(7));
System.out.println(MyMath.sqrt(8));
System.out.println(MyMath.sqrt(9));
}
}
2005-11-14 13:38:00 · answer #1 · answered by 瑪琪朵 5 · 0⤊ 0⤋
這有類似的
▶▶http://qoozoo2014091500.pixnet.net/blog
2014-09-18 08:50:17 · answer #2 · answered by Anonymous · 0⤊ 0⤋
//開根號,使用十分逼近法(最簡單的)
public class Test{
public void playGame(){
double a=2,i=0; //求根號2
double ans=0;
i=a;
while(true){
ans=i*i;
i-=0.000001; //減的值愈小,數值愈接近
if(ans
break;
}
}
System.out.println(i);
}
public static void main(String []args){
Test b=new Test();
b.playGame();
}
}
2005-11-13 18:58:19 · answer #3 · answered by Anonymous · 0⤊ 0⤋