非常简单的问题,看你会不会? 已知圆的面积Area=∏*r*r,求半径r?最好能不调用函数解决. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可调函数太简单了:double area = 100;//也可以是别的数或者输入。System.out.println(Math.sqrt(area / Math.PI)); 不调函数就用循环,把半径从0到 Area/(2*pi) 之间循环以下,看看哪个半径最合适。当然了,精度方面会有一点点问题。 public class Test { public static void main(String[] args) { double area = 100; double areaByPi = area / Math.PI; double max = areaByPi, min = 0; double r = (min + max) / 2; double diff = r * r - areaByPi; final double epson = 1e-6; while(diff > epson || diff < -epson) { if(diff > 0) { max = r; } else { min = r; } r = (min + max) / 2; diff = r * r - areaByPi; } System.out.println(r); }} 读450M的文件,报内存溢出? 数组中的排序问题 日期格式转换问题 关于布局的问题 求助!Java类生成可执行文件跨平台问题.... 一个超级菜鸟问题!关于Applet小程序的字符显示问题。 java连接数据库sqlserver的问题 寻求即时聊天软件(如QQ)的开发思路(来者有分) 关于数据库的问题:很简单的,给我解决一下。 或许我不该做程序员!? 请问javaBean应该怎么用,我这个怎么这么奇怪? Linux下,后台执行JAR问题
System.out.println(Math.sqrt(area / Math.PI));
public static void main(String[] args) {
double area = 100;
double areaByPi = area / Math.PI;
double max = areaByPi, min = 0;
double r = (min + max) / 2;
double diff = r * r - areaByPi;
final double epson = 1e-6;
while(diff > epson || diff < -epson) {
if(diff > 0) {
max = r;
} else {
min = r;
}
r = (min + max) / 2;
diff = r * r - areaByPi;
}
System.out.println(r);
}
}