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; }
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); } } }
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;
}
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;
}祝你好运!
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() + "]");
}
}
SOS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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);
}
}
}
本人是将其归入A中的。如果你不这样认为,可以稍微改改!