已知圆的面积Area=∏*r*r,求半径r?最好能不调用函数解决.

解决方案 »

  1.   

    可调函数太简单了:double area = 100;//也可以是别的数或者输入。
    System.out.println(Math.sqrt(area / Math.PI));
      

  2.   

    不调函数就用循环,把半径从0到 Area/(2*pi) 之间循环以下,看看哪个半径最合适。当然了,精度方面会有一点点问题。
      

  3.   

    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);
    }
    }