就要它的取值范围,就是A、B、C、D阴影部分的取值范围,什么点??

解决方案 »

  1.   

    public static double area() {
       double sum = 4.0; // total
       sum -= 1.0/2; // minus upper B
       sum -= 1.0/2; // minus lower B
       sum -= Math.PI * 0.3 * 0.3; // minus circle
       sum -= 1.0 - 0.3 * 0.3; // minus C
       return sum;
    }
      

  2.   

    首先要得出数学公式:
    1  设任何一个正方形(B,C,D,E)的边长为 x;
    2  设圆形(A)的半径为y.
    3  阴影的面积 r=x*x+(1/2)*x*x+(1/2)*x*x+y*y-(派)*y*y
       也就是说阴影的面积等于 D的面积加上2个 B 一半的面积。在加上一个以A 半径为边长的正方形的面积。在减去A的面积。
    4  把数学公式转换成程序实现!代码如下:
    public float  getArea(float x,float y){
      
     return  x*x+(1/2)*x*x+(1/2)*x*x+y*y-java.lang.Math.PI*y*y;
    }祝你好运!
      

  3.   

    public class Area{
    public double areaA(){
    double i = Math.PI*0.3*0.3;
    return i;
    }
    public double supareaB(){
    double i = (Math.sqrt(2)-0.3) * (Math.sqrt(2)-0.3) *2;
    return i;
    }
    public double supareaC(){
    double i = 1*1-0.3*0.3;
    return i;
    }
    public double supareaD(){
    double i = 2*2 - areaA();
    return i;
    }
    private double areaC(){
    double i = (Math.sqrt(2)-0.3) * (Math.sqrt(2)-0.3) *2;
    double j = (2-Math.sqrt(i)) * (2-Math.sqrt(i));
    return j;
    }
    public double minareaD(){ double i = 2*2 - areaA() - supareaB() - areaC();
    return i;
    }

    public static void main(String argv[]){
    Area aa = new Area();
    System.out.println("AreaA: " + aa.areaA());
    System.out.println("AreaB: [0 ," + aa.supareaB() + " ]");
    System.out.println("AreaC: [0 ," + aa.supareaC() + " ]");
    System.out.println("AreaD: [" + aa.minareaD() + "," + aa.supareaD() + "]");
    }

    }
      

  4.   

    哦,还有,double取小数点后3位
      

  5.   

    莫非这里没有高手????
    SOS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      

  6.   

    抛砖引玉之作,大家见笑了!import java.lang.Math;
    import java.io.*;public class judgeClass{
       private double x,y;
       private static String judge(double x,double y){
        x=x;
        y=y;
       
        if (x>0.3){
        if(y>0){
        if ((x+y)>1){
        return "B";
        }
        else return "D";
        }
        else return "C";
       
        }
        else if ((x>=0)&&(x<=0.3)){
        if ((x*x+y*y)<=0.3*0.3) {
        return "A";
        }
        else if (y<-0.3){
        return "C";
        }
        else return "D";
        }
        else if (x<0){
        if ((x>=-0.3) && ((x*x+y*y)<=0.3*0.3)){
        return "A";
        }
        else if (((x+y)<-1)&&(y<0)){
        return "B";
        }
       
        else return "D";
        }
       
        else return "";
       
       
       
       }
       public static void main(String[] args){
        double m,n;
        String result="";
       
        judgeClass jd = new judgeClass();
       
         try{
            System.out.println("please input the x pix");
            DataInputStream in1 = new DataInputStream(new BufferedInputStream(System.in));
            
          
             m = Double.parseDouble(in1.readLine());
             System.out.println("please input the y pix");
             DataInputStream in2 = new DataInputStream(new BufferedInputStream(System.in));
             
             n = Double.parseDouble(in2.readLine());
             System.out.println(m+","+n);
             result = judge(m,n);
             System.out.println(result);
         }catch(Exception e){
           System.err.println(e);
         }
       }
    }
      

  7.   

    另外,提醒楼主,边界点的处理你没有说清楚,比如说(0.3,0)是属于A,B,C,D中的哪一个?
    本人是将其归入A中的。如果你不这样认为,可以稍微改改!