作者liuyt (YTL)
看板java
标题Re: [问题] 不用Math函式有办法开根号吗?
时间Fri Nov 6 21:04:49 2009
static double squareRoot(double x) {
int a, b, c;
double sum1 = 0, sum2 = 0;
if (x < 0) {
errorMessage();
return -1;
}
for (a = (int) x; a >= 0; a--) {
if (a * a <= x) {
break;
}
}
for (b = 9; b >= 0; b--) {
sum1 = a + 0.1 * b;
if (sum1 * sum1 <= x) {
break;
}
}
for (c = 9; c >= 0; c--) {
sum2 = a + 0.1 * b + 0.01 * c;
if (sum2 * sum2 <= x) {
break;
}
}
return sum2;
}
static void errorMessage() {
System.out.println("输入数字须为正");
}
这样逼近也只能逼近到小数点以下两位@@
要再多就要更多变数才行
这是我的小想法啦,写出来可能要给高手们看笑话了XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.166.144.231